题目描述
给定两个正整数,计算这两个数的最小公倍数。
Input
输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.
Output
对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。
Sample Input
10 14
Sample Output
70
解题思路
最小公倍数=(a*b)/最大公约数
最大公约数使用辗转相除法:只要两个数不整除,就反复用大数整除小数取余,直到整除为止。
完整代码
int gcd(int a, int b)
{
int tmp = 0;
if (a < b)
{
tmp = a;
a = b;
b = tmp;
}
while (a % b != 0)
{
tmp = a % b;
a = b;
b = tmp;
}
return b;
}
int main()
{
int m = 0;
int n = 0;
while (scanf("%d %d", &m, &n) != EOF)
{
int x = m * n / gcd(m, n);
printf("%d", x);
}
return 0;
}