给定两个正整数,计算这两个数的最小公倍数。
Input
输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.
Output
对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。
Sample Input
10 14
Sample Output
70
题解:最小公倍数=两数的乘积/最大公约(因)数, 解题时要避免和最大公约(因)数问题混淆。 最小公倍数的适用范围:分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。
AC代码
#include <iostream>
#include<cstdio>
using namespace std;
int gcd(int x,int y)
{
while(x!=y)
{
if(x>y)
x = x - y;
else
y=y-x;
}
return x;
}
int main()
{
int a , b ;
while(cin>>a>>b)
{
cout<<(a * b/gcd(a,b))<<endl;
}
return 0;
}
我们应该还都知道求最大公约数的函数吧,,哈哈那就是__gcd(a,b)这个神奇的函数,__gcd(a,b)就是求a和b的最小公约数(公因数),这个函数在 #include<algorithm> 这个头文件里,所以我们还可以省的就是gcd这个函数,,我们可以直接看一下简化代码:
#include <iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int a , b ;
while(cin>>a>>b)
{
cout<<(a * b/__gcd(a,b))<<endl;
}
return 0;
}