最大公约数 最大公因数(英语:highest common factor,hcf)也称最大公约数(英语:greatest common divisor,gcd)是数学词汇,指能够整除多个非零整数的最大正整数。 欧几里得算法(辗转相除法)¶ int gcd(int a, int b) { while (b != 0) { int tmp = a; a = b; b = tmp % b; } return a; } 如果两个数 \(a\) 和 \(b\) 满足 \(\gcd(a, b) = 1\),我们称 \(a\) 和 \(b\) 互质。 更相减损术¶ 大整数取模的时间复杂度较高,而加减法时间复杂度较低。针对大整数,我们可以用加减代替乘除求出最大公约数。 int gcd(int a, int b) { while (a != b) { if (a > b) { a -= b; } else { b -= a; } } return a; }