问题链接:HDU1108 最小公倍数。
问题简述:参见上述链接。
问题分析:
根据欧几里德算法计算最大公约数。基于最大公约数计算最小公倍数。
程序说明:(略)。
AC的C++语言程序如下:
/* HDU1108 最小公倍数 */
#include <iostream>
using namespace std;
// 非递归计算最大公约数
long gcd(long m, long n)
{
for(;;) {
if(n == 0)
return m;
long temp = m % n;
m = n;
n = temp;
}
}
// 计算最小公倍数
long lcm(long a, long b)
{
// return a * b / gcd(a, b);
return a / gcd(a, b) * b;
}
int main()
{
long n, m;
while(cin >> n >> m)
cout << lcm(n, m) << endl;
return 0;
}