1. 蛮力法
// greatest common divisor
int gcd(int m, int n) {
int result = min(m, n);
if (result == 0)return max(m, n);
while (result--) {
if (m % result == 0 && n % result == 0)return result;
}
return 1;
}
2. 欧几里得算法
int gcd(int m, int n) {
if (n == 0)return m;
return gcd(n, m % n);
}
Reference
- 《算法设计与分析基础》1.1节
- 欧几里得算法