最大公约数和最小公倍数求法 C++

//******************************更简洁的写法?********************************

//**********************写法很多,但是希望越简洁越好,代码越少越好************************

//************************BY WangKe.Automation.WUST.2012.10***********************
#include<iostream>
using namespace std;

void GetGCD(int numa, int numb)
{
 int divisor = 2;   //动态除数
 int gcd = 1;    //最大公约数结果

 while( (numa >= divisor) && (numb >= divisor) )  //最大公约数
 {
  if( ( numa%divisor == 0 ) && ( numb%divisor == 0 ) )
  {
   gcd = divisor;   
  }
  
  divisor++;
 }

 cout<<"The greatest common divisor is "<<gcd<<endl;
}

void GetLCM(int numa, int numb)

 int lcm = 1;      //最小公倍数结果

 lcm = numa>=numb?numa:numb;   //最小公倍数
 
 while ( !( lcm%numb == 0 && lcm%numa == 0 ) )
 {
  lcm++;
 }
  
 cout<<"The least common multiple is "<<lcm<<endl;
}

int main()

 int num1 = 0, num2 = 0;  //输入数字

 while(1)
 {  
  cin>>num1;
  cin>>num2;
  GetGCD(num1, num2);
  GetLCM(num1, num2);
 }

 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值