更相减损术是出自《九章算术》的一种求最大公约数的算法,它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合。(来源:百度百科)有关其方法的具体内容请自行百度。
1.求出最大公约数
2.求出最小公倍数(两数的乘积除以最大公约数)
#include<iostream>
using namespace std;
int main()
{
int GCD,n,a,b,LCM;
while(cin >> a >> b)
{
GCD = a;
n = b;
while (GCD!=n)//更相减损法
{
/* code */
if (GCD>n)
GCD-=n;
else
n-=GCD;
}
LCM = (a*b)/GCD;
cout << GCD <<" " << LCM <<endl;
}
return 0;
}