最大公约数的性质及应用
最大公约数的定义
最大公约数 (gcd, greatest common divisor) 或者最大公因数 (hcf, highest common factor) 指能够整除多个非零整数的最大正整数.
整数序列 的最大公约数记为 , 在不引起歧义的情况下也可以记作 .
最大公约数的性质
-
任意 a 和 b 的公因数都是 gcd(a, b) 的约数
证明: 设 d = gcd(a, b), 根据贝祖定理 (线性数论定理), 存在整数 x 和 y 使得 xa + yb = d.
对于 a 和 b 的任意公约数 c 满足 c|a 并且 c|b, 由整除的线性性可以得到 c | (xa + yb) 即 c | gcd(a, b) -
gcd 满足交换律: gcd(a, b) = gcd(b, a)
结论显然, 证明略 -
gcd 满足结合律: gcd(a, gcd(b, c)) = gcd(gcd(a, b), c)
证明: 实际上有下面两个式子成立
gcd(a, gcd(b, c)) = gcd(a, b, c)
gcd(gcd(a, b), c) = gcd(a, b, c)
下面证明第一个式子成立, 第二个式子同理
设 d1 = gcd(a, gcd(b, c)), 由贝祖定理存在整数 x 和 y 使得 d1 = xa + y·gcd(b, c). 对于任意 a, b, c 的公约数 e 满足 e|a 并且 e|gcd(b,c), 再由整除的线性性有 e|(xa + y·gcd(b, c)) 即 e|d1, 可知 d1 = gcd(a, b, c).
同理有 gcd(gcd(a, b), c) = gcd(a, b, c).
贝祖定理: 对任意两个整数 a 和 b, 设 d = gcd(a,b), 那么关于未知数 x 和 y 的线性丢番图方程 (贝祖等式): $$xa + yb = m$$ 有整数解 (×, y), 当且仅当 m 为 d 的整数倍. 裴蜀等式有解时必然有无穷多个解.
应用
求多个数的 gcd
在最大公约数函数 gcd(·) 性质 3 的推导中获得过下面的公式
根据这个公式可以进一步得到
示例代码
1 |
|