怎样用欧几里得算法算125和71的最小公倍数
问题描述:
怎样用欧几里得算法算125和71的最小公倍数
答
设为a,b,
先求出最大公约数gcd(a,b) 再用 lcm(a,b)= a*b/ gcd(a,b);
最大公约数用这个递归算法
int gcd(int a,int b)
{
if(b==0) return a;
if(a<b) { return gcd(b,a); }
return gcd(b,a%b);
}
对应过程
gcd(125,71) = gcd(71,125%71) = gcd(71,54) =gcd(54,71%54) = gcd(54,17)
=gcd(17,54%17)= gcd(17,3) =gcd(3,17%3) =gcd(3,2) =gcd(2,3%2) = gcd(2,1) = gcd(1,2%1) =gcd(1,0)
所以最大公约数gcd(125,71)= 1; 最小公倍数 lcm=125*71=8875