最大公约数


最大公约数(英语:greatest common divisor,gcd)是指能够整除多个整数的最大正整数。而多个整数不能都为零。例如 8 和 12 的最大公约数为4。整数 $a$ , $b$ 的最大公约数记为 $gcd(a, b)$。

解法


枚举法

这是最简单也最容易想到的方法,即将所有数的约数都罗列出来,然后再比较找到最大公约数,如 8 和 12 的约数分别为:

8的约数:1、2、4、8

12的约数:1、2、3、4、6、12

最大公约数:4

算法实现:

质因数分解法

分别列出两数的素因数分解式,并计算共同项的乘积,如 8 和 12 的约数分别为:

8的素因数分解式为:**2 * 2 *** 2

12的素因数分解式为:**2 * 2 *** 3

共同项乘积:2 * 2

算法实现:

短除法

两数除以其共同 素因数 ,直到两数 互素 时,所有除数的乘积即为最大公约数。

辗转相除法

也称为欧几里得算法,相对前面几种方法,这种算法要更高效。