一、题目描述
循环输入。每组数据,给定两个非负整数 a和 b(a,b≤109),求两者的最小公倍数。当没有任何输入时,程序结束。
方法:
(1)由数学公式可以推得
最大公因数*最小公倍数=这两个数的乘积
(2)先求出最大公因数,求法看上一讲
(3)然后利用公式求出结果即可
(4)先除后乘避免乘法溢出
代码如下:
#include <stdio.h>
int gcd(int a,int b) //求最大公因数
{
if(b==0)
{
return a;
}
return gcd(b,a%b);
}
int main()
{
int a,b;
int max;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",a/gcd(a,b)*b);
}
return 0;
}