您的位置:首页 > 其它

求最大公约数(gcd)和最小公倍数(lcm)算法

2017-07-28 17:16 330 查看
1.最大公约数:

算法思想是欧几里得的辗转相除法,gcd(a,b)=gcd(b,a%b)。

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


2.最小公倍数:

最小公倍数的求法利用了最大公约数,即lcm(a,b)=a/gcd(a,b)*b

int lcm(int a,int b){
return a/gcd(a,b)*b;
}


注意: 不要写成a*b/gcd(a,b),看似相等,但是当a和b很大时会发生溢出!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gcd 算法 lcm