03 最大公约数 GCD
学习目标
理解 gcd(a,b)\gcd(a,b)gcd(a,b)、互质,以及“互质为什么决定逆元是否存在”。
1. 最大公约数
12 的因数有 1,2,3,4,6,121,2,3,4,6,121,2,3,4,6,12,18 的因数有 1,2,3,6,9,181,2,3,6,9,181,2,3,6,9,18。
最大公共因数是 6,所以:
gcd(12,18)=6\gcd(12,18)=6 gcd(12,18)=6
2. 什么叫互质
若 gcd(a,b)=1\gcd(a,b)=1gcd(a,b)=1,称 a,ba,ba,b 互质。
注意:互质不代表两个数都必须是素数。例如 gcd(8,15)=1\gcd(8,15)=1gcd(8,15)=1。
3. 素数的一个重要性质
若 ppp 是素数,且 1≤a<p1\le a<p1≤a<p,那么一定有:
gcd(a,p)=1\gcd(a,p)=1 gcd(a,p)=1
因为 ppp 的正因数只有 1 和 ppp,而 a<pa<pa<p。
4. 为什么 GCD 和逆元有关
后面会证明:
> aaa 在模 mmm 下存在乘法逆元,当且仅当 gcd(a,m)=1\gcd(a,m)=1gcd(a,m)=1。
因此求 gcd 其实是在判断“能不能做模意义下的除法”。
5. 基本性质
gcd(a,b)=gcd(b,a)\gcd(a,b)=\gcd(b,a) gcd(a,b)=gcd(b,a)
gcd(a,0)=∣a∣\gcd(a,0)=|a| gcd(a,0)=∣a∣
若 d=gcd(a,b)d=\gcd(a,b)d=gcd(a,b),则 d∣ad\mid ad∣a 且 d∣bd\mid bd∣b。
6. 暴力做法
下一节会学习更快的欧几里得算法。
7. 小练习
1. gcd(24,36)\gcd(24,36)gcd(24,36)
2. 8 和 21 互质吗?
3. 若 p=17p=17p=17 且 1≤a<171\le a<171≤a<17,gcd(a,17)\gcd(a,17)gcd(a,17) 是多少?
答案
1. 12
2. 互质
3. 1