這是一個很重要的性質, 重要到我們以 Theorem 來稱呼它. 這個定理我們習慣稱為除法原理, 如此稱它當然就包含``除''這個概念. 不過因為我們現在僅談加(減)法和乘法的性質, 我們避免用除的概念.
假設 r 不合我們的條件, 也就是說 rn (別忘了 r 是非負整數的假設). 若如此, 我們可將 r 寫成 r = n + r', 其中 r' 0. 因此利用
要注意 Theorem 1.2.1 的證明我們用到整數上可以排序的 well-ordering principle, 因此雖然證明很簡單, 但並不能直接套用到其他的數系.
接下來我們就要利用除法原理來探討公因數及最大公因數的基本性質. 由於 a 和 - a 的因數是一樣的, 所以不失一般性, 在討論因數時我們僅討論正整數的情形. 我們就從兩個正整數的情形開始討論.
若 Proposition 1.2.2 中我們取 d = gcd(a, b), 則利用最大公因數的定義我們可得以下之性質.
一般要證明 d = gcd(a, b) 我們要證明兩件事. 首先要證明 d 是 a, b 的公因數, 再來就是證明 d 是 a 和 b 的公因數中最大的. 前面 Corollary 1.2.3 中我們要證明 gcd(a/d, b/d )= 1. 由於 1 必為 a/d, b/d 的公因數, 所以只要證明任意 a/d 和 b/d 的公因數皆小於等於 1 就可. 接著我們來看另一個最大公因數的性質順便在證明中學習證明最大公因數的方法.
首先檢查 d| a 且 d| b. 依定義存在 m, n 使得 d = ma + nb. 要檢查是否 d| a 直覺的方法就是將 a 除以 d 看看是否餘數為 0. 利用除法原理我們知存在 h, r 使得 a = dh + r, 其中 0r < d. 因此有
接著我們要證明 d 是 a, b 的公因數中最大的數. 也就是要證明若 d' 是 a, b 的公因數, 則 d'd. 今由於 d'| a 且 d'| b 由 Corollary 1.1.2 知 d'| ma + nb. 即 d'| d, 也就是說存在 l 使得 d = d'l. 因此由已知 d > 0 當然得 d'd.
在上面證明 d 除以 a 的餘數為 0 的過程中. 我們無法直接證明餘數為 0, 不過發現若餘數不為 0 的話會導致矛盾的結果, 因而確知其餘數非為 0 不可. 這樣證明的方法就是所謂的 ``反證法". 這樣的證明方法我們以後還會經常看到.
或許大家會奇怪, 一般來說找 a, b 的最大公因數只要在 a, b 有限多個公因數中找最大的就好了為什麼要自討苦吃在 {ma + nb | m, n } 這個有無窮多個元素的集合中找? 沒有錯如果 a, b 很具體的知道是什麼當然直接找, 然而當我們要討論一般的情形 a, b 是任何可能的整數不能用幾個具體例子代一代就了事. 所以雖然 Proposition 1.2.4 在實際操作時並不實用但要用到理論的推演時他卻是很好用來表達最大公因數的工具. 直接利用 Proposition 1.2.4 我們馬上有以下之性質.
注意這裡``若且唯若"的意思就是說如果 d' 是 a, b 的公因數那麼 d 必整除 a, b 的最大公因數 d, 反之若 d' 整除 a, b 的最大公因數, 那麼 d' 一定是 a, b 的公因數. 由 Proposition 1.2.4 的證明我們知若 d' 是 a, b 的公因數則 d'| d. 反之若 d'| d, 則由於 d| a 且 d| b, 利用 Proposition 1.1.3(3) 知 d'| a 且 d'| b. 即 d' 為 a, b 的公因數.
一般來說有的性質可以從甲可推得乙, 但這並不表示從乙可推得甲. 如果兩個性質可以互推, 我們就用``若且唯若"表示之. 特別要注意 Corollary 1.2.5 並不是說若有一個正整數 d 可找到 m, n 使得 d = ma + nb, 則 d 就是 a, b 的公因數. 這是一開始大家在學習邏輯推論時常犯的錯誤. 其實 d 可以寫成 ma + nb 僅表示 d 會在集合 S = {ma + nb | m, n } 中, 並不表示 d 會是 S 中最小的正整數. 所以當然 d 就未必是 a, b 的最大公因數. 因此當你要證明 d 是 a, b 的最大公因數時, 還是得按部就班如前面所提的兩步驟進行, 千萬不要找到兩個整數 m, n 使得 d = ma + nb 就說 d 就是 a, b 的最大公因數. 當然了如果你要證明 a, b 互質 (即 gcd(a, b) = 1) 時可以利用找到 m, n 使得 ma + nb = 1 來處理. 這是因為此時 1 在 S 中, 故當然是 S 中最小的正整數了. 因此我們將此特殊情況列出.
若 gcd(a, b) = 1, 由 Corollary 1.2.5 知存在 m, n 使得 1 = ma + nb. 反之, 若存在 m, n 使得 ma + nb = 1, 則 1 必為集合 {ma + nb | m, n } 中最小的正整數, 故由 Proposition 1.2.4 知 gcd(a, b) = 1.
以上的性質並沒有告訴我們怎麼找到 m, n 使得 ma + nb = gcd(a, b), 我們將會在下節介紹完輾轉相除法後給一個方法來求 m, n. 雖然目前我們不知如何求得 m, n, 不過從下一個探討 a, b 互質時的重要的性質我們可以看到僅僅知道它們的存在性在理論的推演就很管用了.
(1) 將 ma + nb = 1 等式兩邊乘上 k 可得 mak + nbk = k. 然而假設 a| bk 故利用 a| ak 以及 Corollary 1.1.2 知 a| k.
(2) 由 a| l 以及 b| l 知存在 r, s 使得 l = ar = bs. 因為 a| ar 故得 a| bs. 再由 gcd(a, b) = 1 的假設利用 (1) 可得 a| s. 換言之存在 t 使得 s = at. 將之帶回 l = bs 得 l = bat, 得證 ab| l.
要注意 Proposition 1.2.7 的條件. 一般來說若沒有 a, b 互質的假設 a| bc 並不能保證 a| b 或 a| c. 就拿 12| 6×4 來說吧, 很明顯的 126 (這裡 表示不整除的意思) 而且 124. 同樣的若 a, b 不互質 a| c 且 b| c 也不能保證 ab| c. 例如 4| 12 且 6| 12 但是 4×612.
接下來我們來看看 a, b 的最小公倍數. 若 l 是 a, b 的最小公倍數, 則由於 gcd (a, b)| l, 我們自然知存在 m, n 使得 l = ma + nb. 不過這個表示法對 l 就沒有什麼幫助了. 主要原因是 l 在 {ma + nb | m, n } 這個集合中不像 gcd(a, b) 有如 Proposition 1.2.4 所述一樣特殊的地位. 不過沒關係, 下一個定理告訴我們一般來說只要了解 a, b 的最大公因數就能掌握 a, b 的最小公倍數.
讓我們先來看看要怎樣知道 l 是 a, b 的最小公倍數. 就如同最大公因數的情形一樣我們要證明兩件事. 首先證明 l 是 a, b 的正的公倍數, 再來就是證明 l 是 a 和 b 的正的公因數中最小的. 如此一來就能擔保 l 是 a, b 的最小公倍數.
首先由 ab/d = b'a 知 a|(ab/d ) 同理知 b|(ab/d ), 也就是說 ab/d 為 a 和 b 的公倍數. 又因為 a, b, d 皆為正數, 所以 ab/d 為 a, b 之正的公倍數.
接著證明若 m 為 a, b 之正的公倍數, 則 (ab/d )m. 由假設知存在 m', n' 使得 m = m'a = n'b. 換言之 m = m'a'd = n'b'd, 故消掉 d (因 d 0) 得 m'a' = n'b'. 也就是說 a'| n'b'. 但由於 gcd(a', b') = 1, 故由 Proposition 1.2.7(1) 知 a'| n'. 也就是說存在 h 使得 n' = a'h. 代回 m = n'b 得 m = ha'b, 故得知 a'b = (ab/d )| m. 由於 ab/d 及 m 皆為正數, 得證 (ab/d )m. 也就是說 ab/d = lcm(a, b) = l.
既然 ab/d = l 由上面的證明我們知若 m 為 a, b 的公倍數, 則 l = (ab/d )| m. 反之, 若 l| m, 則由 a| l 且 b| l, 得知 a| m 且 b| m, 故 m 為 a, b 之公倍數.
要注意雖然 Proposition 1.2.8 中假設 a, b , 但其目的僅是利用其為正數方便描述最小公倍數. 若 a, b 不一定為正時, 我們只要適當的加上負號仍可利用 Proposition 1.2.8 的式子寫下最小公倍數. 另外和 Corollary 1.2.5 中所述公因數為最大公因數之因數相輝映 Proposition 1.2.8 告訴我們公倍數為最小公倍數之倍數.
接下來讓我們來看看有關多個 (多於兩個) 整數的最大公因數性質. 我們試著著推廣前面的方法, 看看前面的結果對多個整數是否適用.
首先檢查對所有 i {1,..., n}, 皆有 d| ai. 依定義, 存在 m1,..., mn 使得 d = m1a1 + ... + mnan. 利用除法原理我們知對任意 i {1,..., n} 皆存在 hi, ri 使得 ai = dhi + ri, 其中 0ri < d. 因此有
接著我們要證明 d 是 a1,..., an 的公因數中最大的數. 也就是要證明若 d' 是 a1,..., an 的公因數, 則 d'd. 今由於對任意 i {1,..., n}, 皆有 d'| ai 故知 d'| m1a1 + ... + mnan. 即 d'| d, 因此由已知 d > 0 當然得 d'd.
有了 Proposition 1.2.9 我們當然可以和前面的方法一樣得到以下之結果, 證明就不再贅述.
要注意並不是所有有關兩個整數的最大公因數的性質都可以推廣到多個整數的情形. 例如 Proposition 1.2.7(2) 告訴我們若 gcd(a, b) = 1 且 a| l 及 b| l, 則 ab| l. 此性質在兩個以上整數的情形就不一定對. 主要原因就是依多個整數互質的定義 a1, a2,..., an 互質是表示這些數沒有共同的因數但不表示任取其中兩個數都互質. 其實有可能任意 ai, aj 都不互質但是 a1,..., an 仍互質. 例如 a1 = 6, a2 = 15 以及 a3 = 10 的情形. 我們有 gcd(a1, a2) = 3, gcd(a2, a3) = 5 以及 gcd(a1, a3) = 2 但是 gcd(a1, a2, a3) = 1. 所以有些情形僅假設 a1,..., an 互質是不夠的, 我們須用到任取兩個都互質 (即對任意 i, j {1,..., n} 且 ij, 皆有 gcd(ai, aj) = 1) 這一個較強的互質性才行. 這種較強的互質性我們稱之為``兩兩互質" (pairwise relatively prime). 當然了若 a1,..., an 兩兩互質, 則 a1,..., an 必互質. 大家一定要清楚這兩種互質性之不同. Proposition 1.2.7(2), 在多個整數的情形之下若改為兩兩互質就會成立. 由於這裡牽涉到任意多個整數, 所以得用到數學歸納法來證明. 數學歸納法的原理我們假設大家在高中時已了解, 此處不再贅述.
(1) 此處由於和 a1,..., an 的排序無關, 我們僅處理 i = 1 的情形. 首先看 n = 2 的情形. 此時 M = a1a2 故由假設 gcd(a1, a2) = 1 知 gcd(a1, M/a1) = 1. 再來由數學歸納法假設 n = k - 1 時成立, 即 gcd(a1, a2 ... ak - 1) = 1, 知存在 m', n' 使得
(2) 首先考慮 n = 2 的情形, 此時 M = a1a2 且 gcd(a1, a2) = 1 故 Proposition 1.2.7(2) 告訴我們若 a1| l 且 a2| l, 則 M| l. 再來由數學歸納法假設 n = k - 1 時成立, 即若令 M' = a1 ... ak - 1, 則 M'| l. 現考慮 n = k 之情形, 此時 M = a1 ... ak - 1ak = M'ak. 由 (1) 知 gcd(ak, M') = gcd(ak, M/ak) = 1, 故由假設 ak| l 且 M'| l 以及 Proposition 1.2.7(2) 知 M'ak = M| l.
接下來我們來看, 若我們會求兩個整數的最大公因數 (參見下一節之輾轉相除法) 那麼我們就可以兩個兩個地求得多個整數的最大公因數. 也就是說可以先求 d1 = gcd(a1, a2) 求得 d2 = gcd(a1, a2, a3) = gcd(d1, a3), 這樣一直下去以求得 gcd(a1, a2, ... , an). 我們的證明方法還是利用前述證明最大公因數方法進行.
現假設 d' 是 a1,..., an - 1, an 的公因數. 當然 d' 是 a1,..., an - 1 的公因數, 故由 Corollary 1.2.10 知 d'| gcd(a1,..., an - 1). 再加上 d'| an, 故知 d' 是 gcd(a1,..., an - 1) 和 an 的公因數, 故再由 Corollary 1.2.5 知 d'| gcd(gcd(a1,..., an - 1), an) = d. 得證 d 是 a1,..., an 的公因數中最大的數, 故為 a1,..., an 的最大公因數.
最後我們看看多個整數的最小公倍數的性質. 首先要注意的是 Proposition 1.2.8 中 lcm(a, b) = ab/gcd(a, b) 這個性質在多個整數時並不一定對. 例如前面所提 a1 = 6, a2 = 15 以及 a3 = 10 的例子, 我們有 a1a2a3 = 900, gcd(a1, a2, a3) = 1 但是 lcm(a1, a2, a3) = 30. 雖然如此, 我們仍有公倍數為最小公倍數之倍數的性質, 而且求多個整數之最小公倍數也可如最大公因數一樣兩個兩個進行. 底下我們將利用數學歸納法同時證明這兩個性質. 這種重要的證明技巧大家或許沒有見過, 不過其原理如同一般的數學歸納法原理, 大家應能理解.
現依數學歸納法假設 n = k - 1 時成立: 即
由於 l = lcm(l', ak) 是 l' = lcm(a1,..., ak - 1) 的倍數, 故由數學歸納法假設 (n = k - 1 之情況) 知 l 為 a1,..., ak - 1 的公倍數. 再加上 l 也是 ak 的倍數, 故得知 l 是 a1,..., ak 的公倍數. 另一方面若 m 是 a1,..., ak - 1, ak 的公倍數, 當然 m 是 a1,..., ak - 1 的公倍數. 故由數學歸納法假設知 l' = lcm(a1,..., ak - 1)| m. 再加上 ak| m, 知 m 為 l' 和 ak 之公倍數. 故由 Proposition 1.2.8 知 l = lcm(l', ak)| m. 因而得知 l 確為 a1,..., ak 的正公倍數中最小者, 也就是說 l = lcm(a1,..., ak). 我們也同時證得若 m 為 a1,..., ak 的公倍數, 則 l| m. 反之若 l| m, 則由對所有 i {1,..., k} 皆有 ai| l, 得證 ai| m. 也就是說 m 為 a1,..., ak 的公倍數.