一般来说,我们用欧几里得算法来求最大公因数,数学原理请见:欧几里得算法
原理有点绕,但其实算法实现很简单,利用递归实现,代码如下:
int gcd(int a,int b)//最大公因数
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
求得最大公因数之后,最小公倍数的求法就非常简单了,两数相乘再除以最大公因数即可
int lcm(int a,int b)//最小公倍数
{
int d=gcd(a,b);
return a*b/d;
}