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很大时会发生溢出!!
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很大时会发生溢出!!