欧几里得算法
用来求最大公约数,又称辗转相除法,时间复杂度可以认为是O(lgn)
gcd( a , b ) = gcd( b , a % b )
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a%b);
}
最小公倍数
lcm ( a, b) = a * b / gca( a, b )
用来求最大公约数,又称辗转相除法,时间复杂度可以认为是O(lgn)
gcd( a , b ) = gcd( b , a % b )
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a%b);
}
最小公倍数
lcm ( a, b) = a * b / gca( a, b )