1.4 最小公倍数
1.4.1 题目内容
求两个正整数的最小公倍数。
输入描述:输入数据含有不多于 50 对的数据,每对数据由两个正整数(0<,<100 000)组成。
输出描述:对于每组数据 和 ,计算最小公倍数,每个计算结果应单独占一行。
输入样例
6 5 18 12
输出样例
30
36
1.4.2 提示
对于 32 位 CPU,int 的表示范围为- ~0~(+ -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;
}