質數的定理

一言以蔽之:質數在數論中最重要的研究課題。

Numbers

最近在給中學生講質數的故事,順便整理下來。

1不是質數

如果某個數只有1與本身二個正因數,那麼該數就是質數,反之稱為合數。根據這個定義,最小的質數是2(2也是唯一的偶質數),1不是質數。

但這是現代數學的定義,在古代(十八世紀以前)的質數定義是,質數的正因數只有1與本身(古代沒規定要恰二個),所以在古代1也是是質數。

質數有無限多個

質數到底有幾個,遠在古希臘時代,數學家就知道質數有無限多個了,最簡單的證明方法是反證法,這個例子也是中學教反證法的經典案例。

假設質數的個數是有限個N個,分別是p₁、p₂、...、pN。
令X=p₁*p₂*...*pN+1,顯然X比所有的p都大、也跟這N個質數p都不同。
X除以p₁的餘數是1,也就是p₁不能整除X。
同理,顯然所有的p都不能整除X,因此X也是一個質數,所以X是第(N+1)個質數,與假設矛盾,因而假設不成立,故得證。

算術基本定理

如果問大學生說「小學生第一個學到的定理是哪個?」,大部分人的答案都是直角三角形的畢氏定理c²=a²+b²,但其實大家小時候第一個接觸到的定理是算術基本定理,所有大於1的正整數都可以唯一地分成若干個質數的乘積,這其實就是質因數分解。

證明的方式仍然是用反證法,只是要證明二個部分,首先是證明質因數分解『存在』:

假設有大於1的正整數,不能被質因數分解,找最小的那一個叫做N。
N一定不是質數,因為質數可以分解成自己,所以N是合數。
既然N是合數,所以N必有除了1和N以外的正因數(這是合數的定義),因此有N=a*b,其中1<a≤b<N。
由於N是不能質因數分解的最小合數(前面的假設),而a和b都比N更小,所以a和b都可以質因數分解成a=p₁*p₂*...*pi、b=q₁*q₂*...*qj,其中所有p和q都是質數。
而N=a*b=p₁*p₂*...*pi*q₁*q₂*...*qj,就是質數的乘積,與假設矛盾,因而假設不成立,故得證。

其次是證明質因數分解『唯一』,也是用反證法:

假設有大於1的正整數,有二種以上的質因數分解方法,找最小的那一個叫做N。
N一定不是質數,因為質數就只有1與本身二個正因數(質數的定義),所以只有一種質因數分解N=N。
由於N有二種質因數分解方法,令N=p₁*p₂*...*pi=q₁*q₂*...*qj,其中所有p和q都是質數。
由上式知道p₁可以整除N=q₁*q₂*...*qj,但所有p和q都是質數,所以p₁只能和其中一個q相同,姑且取q₁=p₁。
令M=N/p₁=p₂*...*pi=N/q₁=q₂*...*qj,仍然是一個大於1的正整數,且有二種不同的質因數分解方法,與假設矛盾,因而假設不成立,故得證。

輾轉相除法

現在小學求最大公因數,都是教質因數分解,因為這才符合建構式教學的思考邏輯。有些參考書則是會補充輾轉相除法,可以讓計算的速度變快。

輾轉相除法的本質就是能被最大公因數整除的二個數a和b,相減後(a-b)還是能被這最大公因數整除,所以要計算二個大數字的最大公因數,可以一直互相減來減去,把數字變小。

|為整除符號,≡為餘數符號。m|a來表示m整除a,也就是a≡0 (mod m)。
倘若m|a、m|b,那麼可以令a=k₁*m、b=k₂*m。
a-b=(k₁-k₂)*m,因此m|(a-b)。

費馬小定理

費馬是個律師,也是個業餘數學家(這個業餘的也未免太強了),他曾經提出過費馬小定理、費馬大定理……等,最氣人的是,他在筆記上寫了一個定理以後,但又在旁邊寫:「這個證明很美妙,只是紙張的空間太小就不寫了」,結果後代的數學家又花了好多年才證明出他說的是對的,其中費馬大定理直到1995年才被證明出來。

費馬小定理說的是,若n是一個整數、p是一個質數,那麼有n^p-n≡0 (mod p)。舉個例子,n=12、p=5,12^5-12=248820,被5整除。費馬小定理的證明方法有很多種,這裡用中學生會學到數學歸納法來證明。(為了簡化起見,這裡只證明n是正整數的情況。)

(1) 當n=1,n^p-n=0,除以任何質數p,都能整除,n^p-n≡0 (mod p)成立。
(2) 假設當n=k時,n^p-n≡0 (mod p)成立,亦即k^p-k≡0 (mod p)
當n=k+1時,n^p-n=[(k+1)^p]-(k+1)
利用二項式定理展開,C(a,b)是組合,C(a,b)=a!/b!/(a-b)!,
[(k+1)^p]-(k+1)=[C(p,p)*k^p+C(p,p-1)*k^(p-1)+...+C(p,1)*k+C(p,0)]-(k+1)
因為p|C(p,p-1)、p|C(p,p-2)、...、p|C(p,2)、p|C(p,1),所以
[C(p,p)*k^p+C(p,p-1)*k^(p-1)+...+C(p,1)*k+C(p,0)]-(k+1)≡[C(p,p)*k^p+C(p,0)]-(k+1) (mod p)
而C(p,p)=C(p,0)=1,所以
[C(p,p)*k^p+C(p,0)]-(k+1)=[k^p+1]-(k+1)=k^p-k≡0 (mod p)
(3) 由於n=1成立、當n=k成立下n=k+1也成立,故得證。

註:本文的證明都沒有使用方程式的圖檔,一方面是網頁讀取速度會比較快,另一方面是也不覺得讀者對證明感興趣。如果讀者對證明感興趣的話,在網路上可以很容易找到更清楚的證明。