两个数的最小公倍数用公式表示为:(两数之积x*y)/(最大公约数gcd(x,y));但是两个数先乘会产生很大的数,可能会超出整数的表示范围,所以,把计算顺序做一下修改:{x/gcd(x,y)}*y。实现代码如下:
#include<iostream>
#include<fstream>
using namespace std;
int gcd(int,int);
int main(int argc,char * argv[])
{
ifstream cin("aaa.txt");
int a,b;
while(cin>>a>>b)
{
cout<<a/gcd(a,b)*b<<endl;
}
return 0;
}
int gcd(int x,int y)
{
while(x!=y) x>y?(x=x-y):(y=y-x);
return x;
}
这一篇可与上一篇最大公约数结合起来看。