求最大公约数和最小公倍数算法

翻译

GCD(greatest common divisor): 最大公约数

25和35的最大公约数为5

欧几里得算法(Euclidean algorithm), 辗转相除法

GCD算法1

1
2
3
4
5
6
7
8
9
public int gcd(int a, int b) {
int temp;
while (b > 0) {
temp = a;
a = b;
b = temp % b;
}
return a;
}

GCD算法2

1
2
3
4
5
6
public int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}

翻译

LCM(least common multiple): 最小公倍数

算法1

1
2
3
public int lcm(int a, int b) {
return a * b / gcd(a, b);
}