#include <cstdio>
__int64 GCD(__int64 a,__int64 b)
{
if (a % b == 0)
return b;
else
return GCD(b,a%b);
}
__int64 LCM(__int64 a,__int64 b) // a * b / GCD(a,b)
{
return a / GCD(a,b) * b ;
}
int main()
{
__int64 a,b;
__int64 ans;
while (~scanf ("%I64d %I64d",&a,&b))
{
ans = LCM(a,b);
printf ("%I64d\n",ans);
}
return 0;
}
__int64 GCD(__int64 a,__int64 b)
{
if (a % b == 0)
return b;
else
return GCD(b,a%b);
}
__int64 LCM(__int64 a,__int64 b) // a * b / GCD(a,b)
{
return a / GCD(a,b) * b ;
}
int main()
{
__int64 a,b;
__int64 ans;
while (~scanf ("%I64d %I64d",&a,&b))
{
ans = LCM(a,b);
printf ("%I64d\n",ans);
}
return 0;
}
本文介绍了一个计算两个64位整数的最大公约数(GCD)和最小公倍数(LCM)的C/C++程序。通过递归的方式实现了欧几里得算法来求解最大公约数,并利用该结果计算最小公倍数。程序可以接收用户输入并输出结果。
791

被折叠的 条评论
为什么被折叠?



