最大公约数gcd+最小公倍数lcm

若 r 是 a ÷ b 的余数, 则 gcd(a,b) = gcd(b,r)

1,    a ÷ b,令r为所得余数(0≤r<b)
若 r = 0,算法结束;b 即为答案。
2,    否则互换:置 a←b,b←r,并返回第一步。

int gcd(int a,int b){
   return b==0?a:gcd(b,a%b);
}
int lcm(int a,int b){
    return a*b/gcd(a,b);
}

最小公倍数lcm=两整数的乘积÷最大公约数
lcm(a,b)=a*b/gcd(a,b)

猜你喜欢

转载自blog.csdn.net/weixin_44410512/article/details/87164222