题目描述
给定两个正整数,计算这两个数的最小公倍数。
输入
输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数。
输出
对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。
样例输入
20 15
样例输出
60
需要注意的是,最小公倍数是在最大公约数的基础上得来的,a和b的最大公约数 d=gcd(a,b)
所以a和b的最小公倍数为ab/d;
但有时ab有可能溢出,所以更优的写法是a/d*b
#include<cstdio>
int gcd(int a,int b){
return !b?a:gcd(b,a%b);
}
int main()
{
int a,b,d;
while(scanf("%d%d",&a,&b)!=EOF)
{
d=gcd(a,b);
printf("%d\n",a/d*b);
}
return 0;
}