java 求最大公约数

什么是最大公约数

最大公约数 —— Greatest Common Divisor(GCD),指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。

比如:

  • 4,6 的最大公约数为2
  • 4,8 的最大公约数为4
  • 3,2 的最大公约数为1

java 代码实现 辗转相除法 求最大公约数

辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。

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

leetcode 应用题