1.4 最小公倍数

                                       1.4 最小公倍数

1.4.1  题目内容

求两个正整数的最小公倍数。
输入描述:输入数据含有不多于 50 对的数据,每对数据由两个正整数(0<n_{1}n_{2}<100 000)组成。
输出描述:对于每组数据 n_{1}和  n_{2} ,计算最小公倍数,每个计算结果应单独占一行。
输入样例 
6 5 18 12 
输出样例 
30 
36 

1.4.2   提示

       对于 32 位 CPU,int 的表示范围为- 2^{32} ~0~(+ 2^{32} -1),即-2 147 483 648~2 147 483 647有符号数,用最高位表示符号(1 正 0 负)。

     最小公倍数=X*Y/gcd(x,y);但两数先乘会产生很大的数,可能会超过整数的表示范围,所以,把计算顺序修改一下就可以了:最小公倍数=X /gcd(x,y) *Y。

#include <iostream>
using namespace std;
//声明 gcd 函数,该函数用来计算两数的最大公约数
int gcd(int,int);
int main(int argc, char* argv[])
{
 int x,y;
 while(cin>>x>>y)
 {
 cout<<x/gcd(x,y)*y<<endl;
 }
 return 0;
}
int gcd(int x,int y)
{
    while(x!=y)
 {
 if(x>y)x=x-y;
 else
 y=y-x;
 }
 return x;
}

猜你喜欢

转载自blog.csdn.net/qq_41668789/article/details/82119877