Evanalysis
7.1預計閱讀時間: 16 分鐘

7.1 整除、最大公因數與整數方程

建立整除、質數、除法算法、歐幾里得算法、Bézout 恆等式、唯一質因數分解,以及一次 Diophantine 方程。

課程目錄

MATH1025:預備數學

預備數學筆記。

9

為何整數算術需要新的語言

整數算術看似熟悉,但要證明關於整數的命題,不能只沿用實數除法的直覺。在實數代數中,a/ba/b 通常是一個合法的實數;在整數論中,更重要的問題是:這個商能否仍然是一個整數?

這個問題會支撐後面的很多方法。它讓我們定義質數、描述共同因子、有效計算最大公因數,並判斷

ax+by=cax+by=c

是否有整數解。

整除

定義

整除

a,bZa,b\in\mathbb Z。若存在整數 d 使得

b=ad,b=ad,

則稱 a 整除 b,記作 aba\mid b。此時 a 稱為 b 的因數或除數。

定義中的「存在整數」是重點。例如 3153\mid 15,因為 15=3515=3\cdot5;但 4154\nmid 15,因為不存在整數 d 使 15=4d15=4d

幾個邊界情況要先說清楚:

  • 任意整數都整除 0,因為 0=a00=a\cdot0
  • 0 只整除 0,因為 x=0dx=0\cdot d 會迫使 x=0x=0
  • ±1\pm1 整除所有整數;
  • a0a\ne0,則 aa-a 都整除 a

定理

基本整除規則

a,b,cZa,b,c\in\mathbb Z

  1. b0b\ne0aba\mid b,則 ab|a|\le |b|
  2. aba\mid b,則 (±a)(±b)(\pm a)\mid(\pm b)
  3. aba\mid bbcb\mid c,則 aca\mid c
  4. aba\mid baca\mid c,則對任意 x,yZx,y\in\mathbb Za(bx+cy)a\mid (bx+cy)

第四條是後面經常使用的工具:若一個整數同時整除兩個數,它也會整除這兩個數的任意整數線性組合。例如 6186\mid 186306\mid 30,所以

618x+30y6\mid 18x+30y

對所有整數 x,y 都成立。

質數、合數與良序原理

定義

質數與合數

nZ+n\in\mathbb Z^+n>1n>1

  • n 的正因數只有 1n,則 n 是質數;
  • n 不是質數,則 n 是合數。

整數 1 既不是質數,也不是合數。

等價地,n>1n>1 是合數,正是指存在整數 n1,n2n_1,n_2 滿足

n=n1n2,1<n1,n2<n.n=n_1n_2,\qquad 1<n_1,n_2<n.

關於質數的證明常常依賴以下次序事實。

定理

良序原理

N={0,1,2,}\mathbb N=\{0,1,2,\ldots\} 的任意非空子集都有最小元素。

良序原理讓我們可以使用「最小反例」論證。若某類壞整數非空,選出其中最小的一個,再證明它會產生更小的壞整數,便得到矛盾。

定理

大於 1 的整數都有質因數

每個大於 1 的正整數都至少有一個質因數。

證明思路如下。假設結論錯誤,令 m 是最小的、大於 1 但沒有質因數的整數。m 不可能本身是質數,所以 m=n1n2m=n_1n_2,其中 1<n1,n2<m1<n_1,n_2<m。由 m 的最小性,較小的 n1n_1 有質因數 p。又因為 pn1p\mid n_1n1mn_1\mid m,所以 pmp\mid m,矛盾。

定理

質數有無限多個

質數有無限多個。

若質數只有有限多個 p1,,pNp_1,\ldots,p_N,考慮

n=p1p2pN+1.n=p_1p_2\cdots p_N+1.

上一個定理保證 n 有某個質因數。這個質因數必須是列表中的某個 pip_i。但 pip_i 亦整除乘積 p1p2pNp_1p_2\cdots p_N,所以它整除差

np1p2pN=1,n-p_1p_2\cdots p_N=1,

這不可能。

最大公因數

定義

最大公因數

a,bZa,b\in\mathbb Z。若 a,b 不同時為零,定義

gcd(a,b)=max{dZ:da and db}.\gcd(a,b)=\max\{d\in\mathbb Z:d\mid a\text{ and }d\mid b\}.

a=b=0a=b=0,則定義 gcd(0,0)=0\gcd(0,0)=0

當輸入不全為零時,最大值存在,因為共同因數的絕對值受到限制。除了 a=b=0a=b=0 的特殊情況外,gcd(a,b)\gcd(a,b) 都是正整數。

定義

互質

兩個非零整數 a,b 若唯一的正共同因數是 1,則稱它們互質。等價地,

gcd(a,b)=1.\gcd(a,b)=1.

最大公因數可用來移除兩個整數的共同部分。若

d=gcd(a,b),d=\gcd(a,b),

gcd(ad,bd)=1.\gcd\left(\frac ad,\frac bd\right)=1.

例如 gcd(126,140)=14\gcd(126,140)=14,所以

126140=910,\frac{126}{140}=\frac{9}{10},

910 互質。

除法算法

接下來的問題是計算性的:若不能事先列出所有共同因數,怎樣求最大公因數?關鍵是帶有受控餘數的整數除法。

定理

除法算法

a,bZa,b\in\mathbb Zb0b\ne0。則存在唯一整數 q,r 使得

a=bq+r,0r<b.a=bq+r,\qquad 0\le r<|b|.

q 稱為商,r 稱為餘數。

條件 0r<b0\le r<|b| 不是附加裝飾,而是唯一性的核心。例如

17=53+217=5\cdot3+2

符合除法算法;但

17=52+717=5\cdot2+7

不符合,因為餘數 7 不小於 5

常見錯誤

不能忽略餘數範圍

只寫 a=bq+ra=bq+r 並不足夠。若不限制 r,同一個 a 可以有無限多種表示。條件 0r<b0\le r<|b| 才會選出標準的商與餘數。

最大公因數不變性與歐幾里得算法

除法算法有用,是因為把 (a,b) 換成 (b,r) 不會改變最大公因數。

定理

最大公因數的一步不變性

a=bq+ra=bq+r,則

gcd(a,b)=gcd(b,r).\gcd(a,b)=\gcd(b,r).

理由是:a,b 的共同因數會整除 r=abqr=a-bq;反過來,b,r 的共同因數會整除 a=bq+ra=bq+r。因此兩對數的正共同因數完全相同。

例題

用歐幾里得算法求 gcd(7224,1290)\gcd(7224,1290)

反覆使用除法算法:

7224=12905+774,1290=7741+516,774=5161+258,516=2582+0.\begin{aligned} 7224&=1290\cdot5+774,\\ 1290&=774\cdot1+516,\\ 774&=516\cdot1+258,\\ 516&=258\cdot2+0. \end{aligned}

最後一個非零餘數是 258,所以

gcd(7224,1290)=258.\gcd(7224,1290)=258.

算法必然停止,因為餘數形成嚴格遞減的非負整數列:

r1>r2>r3>0.r_1>r_2>r_3>\cdots\ge0.

非負整數不可能無限地嚴格遞減。

擴展歐幾里得算法與 Bézout 恆等式

同一個計算可以倒推,將最大公因數寫成原本兩個數的整數線性組合。

例題

倒代回去

由前面的計算,

258=774516.258=774-516.

代入 516=1290774516=1290-774

258=774(1290774)=27741290.258=774-(1290-774)=2\cdot774-1290.

再代入 774=722451290774=7224-5\cdot1290

258=2(722451290)1290=27224111290.258=2(7224-5\cdot1290)-1290 =2\cdot7224-11\cdot1290.

因此

258=72242+1290(11).258=7224\cdot2+1290\cdot(-11).

定理

Bézout 恆等式

對任意整數 a,b,存在整數 x,y 使得

gcd(a,b)=ax+by.\gcd(a,b)=ax+by.

這個結果說明,最大公因數不只是最大的共同因數;它也可以由 a,b 的整數線性組合產生。

定理

互質判別

a,b 為非零整數。則 a,b 互質,當且僅當存在整數 x,y 使得

ax+by=1.ax+by=1.

gcd(a,b)=1\gcd(a,b)=1,這就是 Bézout 恆等式。反過來,若 ax+by=1ax+by=1,任何共同因數都必須整除 1,所以最大正共同因數只能是 1

例題

擴展歐幾里得表格的結果

1234511111,歐幾里得算法給出

12345=111111+1234,11111=12349+5,1234=5246+4,5=41+1,4=14+0.\begin{aligned} 12345&=11111\cdot1+1234,\\ 11111&=1234\cdot9+5,\\ 1234&=5\cdot246+4,\\ 5&=4\cdot1+1,\\ 4&=1\cdot4+0. \end{aligned}

所以最大公因數是 1。倒代或使用係數表格可得

1=12345(2224)+11111(2471).1=12345(-2224)+11111(2471).

這特別證明 1234511111 互質。

共同因數與 Euclid 引理

Bézout 恆等式也給出最大公因數的另一個重要刻畫。

定理

共同因數整除最大公因數

對整數 a,b,n

na and nbngcd(a,b).n\mid a\text{ and }n\mid b \quad\Longleftrightarrow\quad n\mid \gcd(a,b).

正向尤其有用。若 n 同時整除 ab,則 n 整除任意線性組合 ax+byax+by;特別地,它整除等於 gcd(a,b)\gcd(a,b) 的 Bézout 線性組合。

定理

Euclid 引理

p 是質數。若 pabp\mid ab,則 pap\mid apbp\mid b

pap\nmid a,則 gcd(a,p)=1\gcd(a,p)=1,所以存在整數 m,n 使

am+pn=1.am+pn=1.

兩邊乘以 b

abm+pbn=b.abm+pbn=b.

因為 pabp\mid ab,左邊兩項都被 p 整除,所以 pbp\mid b

唯一質因數分解

定理

算術基本定理

每個大於 1 的正整數都可以寫成質數乘積,而且這個乘積在不計因子次序下唯一。

存在性仍然來自最小反例法。若存在最小的、大於 1 且不能寫成質數乘積的整數,它不可能是質數,因此可分解成兩個更小的因數;但這兩個較小因數已經可以分解成質數乘積,矛盾。

唯一性使用 Euclid 引理。若

p1p2pr=q1q2qs,p_1p_2\cdots p_r=q_1q_2\cdots q_s,

p1p_1 整除右邊乘積,所以 p1p_1 必整除某個質因數 qjq_j,從而 p1=qjp_1=q_j。消去後重複同樣論證。

這個定理也給出計算最大公因數的指數方法。若

a=p1m1prmr,b=p1n1prnr,a=p_1^{m_1}\cdots p_r^{m_r}, \qquad b=p_1^{n_1}\cdots p_r^{n_r},

其中缺少的質數用指數 0 補上,則

gcd(a,b)=p1min(m1,n1)prmin(mr,nr).\gcd(a,b)=p_1^{\min(m_1,n_1)}\cdots p_r^{\min(m_r,n_r)}.

例題

用質因數冪次求最大公因數

因為

144=2432,60=2235,144=2^4\cdot3^2,\qquad 60=2^2\cdot3\cdot5,

所以

gcd(144,60)=223150=12.\gcd(144,60)=2^2\cdot3^1\cdot5^0=12.

一次 Diophantine 方程

未知數 x,y 必須是整數的方程

ax+by=cax+by=c

稱為一次 Diophantine 方程。Bézout 恆等式可以完全判定它何時有解。

定理

可解條件

a,b,cZa,b,c\in\mathbb Z,且 d=gcd(a,b)d=\gcd(a,b)。方程

ax+by=cax+by=c

有整數解 (x,y),當且僅當 dcd\mid c

若解存在,因為 d 整除 a,b,所以 d 整除 ax+by=cax+by=c。反過來,若 c=drc=dr,由 Bézout 恆等式有 d=am+bnd=am+bn,因此

c=dr=a(mr)+b(nr).c=dr=a(mr)+b(nr).

所以 (mr,nr) 是一組解。

若已知一組解,也可以描述所有解。設 d=gcd(a,b)0d=\gcd(a,b)\ne0,並令

u=ad,v=bd.u=\frac ad,\qquad v=\frac bd.

(x0,y0)(x_0,y_0) 是一組解,則所有解為

x=x0+kv,y=y0ku,kZ.x=x_0+kv,\qquad y=y_0-ku,\qquad k\in\mathbb Z.

例題

量水問題

若有 180 mL 的杯和 105 mL 的玻璃杯,能否量出剛好 30 mL?代數上,我們要判斷

180x+105y=30180x+105y=30

是否有整數解。因為

gcd(180,105)=15\gcd(180,105)=15

153015\mid 30,所以有解。

由擴展歐幾里得算法,

15=18031055.15=180\cdot3-105\cdot5.

乘以 2

30=180610510.30=180\cdot6-105\cdot10.

所以一組解是 (x,y)=(6,10)(x,y)=(6,-10)。因為 a/d=12a/d=12b/d=7b/d=7,所有解為

(x,y)=(6+7k,1012k),kZ.(x,y)=(6+7k,-10-12k),\qquad k\in\mathbb Z.

快速檢查

快速檢查

以整數語言來說,aba\mid b 是甚麼意思?

留意定義中隱含的存在量詞。

解答

答案

快速檢查

為甚麼 ab 的每個共同因數都會整除 ax+byax+by,其中 x,yZx,y\in\mathbb Z

分別使用兩次整除定義。

解答

答案

快速檢查

72241290 的歐幾里得算法中,為甚麼最大公因數是最後一個非零餘數?

每一步都用 gcd(a,b)=gcd(b,r)\gcd(a,b)=\gcd(b,r)

解答

答案

快速檢查

判斷 ax+by=cax+by=c 是否有整數解的條件是甚麼?

gcd(a,b)\gcd(a,b) 表述。

解答

答案

練習

  1. 列出 84 的所有正因數,並求 gcd(84,60)\gcd(84,60)
  2. 用除法算法把 37-37 寫成 37=5q+r-37=5q+r,其中 0r<50\le r<5
  3. 用歐幾里得算法求 gcd(252,198)\gcd(252,198)
  4. gcd(252,198)\gcd(252,198) 寫成 252x+198y252x+198y
  5. 證明:若 nan\mid anbn\mid b,則 ngcd(a,b)n\mid\gcd(a,b)
  6. 判斷 35x+21y=1435x+21y=14 是否有整數解;若有,求一組解。
  7. 判斷 35x+21y=1035x+21y=10 是否有整數解。
  8. 用質因數分解求 gcd(24325,23357)\gcd(2^4\cdot3^2\cdot5,\, 2^3\cdot3^5\cdot7)

解答

引導解答

本節掌握 checkpoint

要完成這一節 checkpoint,需要把每一題答對。 答對進度: 0%.

技能點: integer-methods, gcd, euclidean-algorithm

使用第 7 章的歐幾里得算法:7224=12905+7747224=1290\cdot5+7741290=7741+5161290=774\cdot1+516774=5161+258774=516\cdot1+258516=2582+0516=258\cdot2+0。填空:\gcd(7224,1290)=____

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

輸入格式提示: 請輸入最後一個非零餘數。

  • 請輸入一個正整數。

技能點: integer-methods, linear-diophantine-equations, gcd

哪一個陳述正確判斷 35x+21y=1035x+21y=10 是否有整數解?

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

  • 35=7535=7\cdot521=7321=7\cdot3,所以最大公因數是 7

本單元重點詞彙

Premium learning add-ons

Core notes stay free. Advanced exercises, video explanations, and premium exports are available through paid plans.