欧几里得算法(Euclid)
最大公约数
\(gcd(a, b)\)
int gcd (int a, int b) {
while (b) {
swap(a, b);
b %= a;
}
return a;
}
//---or---
int gcd(int a, int b) {
return (b == 0 ? a : gcd(b, a % b));
}
最小公倍数
\(lcm(a, b)\)
int lcm (int a, int b) {
int x = a * b;
while (b) {
swap(a, b);
b %= a;
}
return x / a;
}
//---or---
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);
}
标签:return,gcd,int,欧几里得,---,算法,lcm
From: https://www.cnblogs.com/lw0-blog/p/17292370.html