#素數不是吃素的# #數學啟蒙# 有關質數的一些有趣小知識
之前,我寫過兩篇介紹素數的小文章
【給你多少個數字, 只用乘法可以得到全部正整數?——聊聊質數(素數)】給你多少個數字, 只用乘法可以得到全部正整數? ——聊聊質數(素數)
【有關質數的兩個有名猜想(1)——哥德巴赫猜想】有關質數的兩個有名猜想之一——哥德巴赫猜想
今天我再就「素數有無窮多個」以及素數的一些有趣的知識介紹給大家。
首先,讓我們再一次重溫100以內的素數。
觀察這個表,你會發現什麼?最簡單的觀察結果是,
1、從十位數開始,素數的個位數字不可能是2、4、5、6、8、0。
這個很容易證明,個位數字是2、4、6、8、0的數字都是偶數,可以被2整除,個位數字是5的數字可以被5整除。
2、2是唯一的偶素數。
還有什麼觀察結果嗎?二十以內素數有8個,佔到了40%的比例。100以內的素數一共有25個,佔25%。然後再讓我們來看看1~1000有幾個素數吧!
(1000以內的素數表)
有168個,共佔1~1000的16.8%。你肯定也發現了,素數在全體整數中所佔的比例越來越低了,換句話說,素數越來越稀少了!
那是不是某個數字之後,就再也沒有素數了呢?也就是說會不會素數是有限個呢?
(歐幾裡得的《幾何原本》,跨越時空的偉大著作)
不會的,歐幾裡得在《幾何原本》中給出了一個完美的證明。
首先假設素數有有限個,那麼就存在一個最大素數,我們用N表示這個最大素數。這就意味著在N之後,再也沒有素數了。那麼我們現在來看這樣一個數字:
M= 1*2*3*…*N+1
它是1到N的所有數字的乘積再加上1的和, 顯然是大於N的。 根據假設,所有的素數在1~N的範圍內,所以這個數字為非素數(又稱為合數)。根據算術基本定理,任何一個合數,都可以表示為若干個素數的乘積,也就是說,一個合數是能夠被某個比它小的素數整除的。
可是,我們同時也發現,從2~N的所有素數除以M,餘數都是1。 只有1和M才可以整除M。根據素數的定義, M顯然是一個素數。這就和我們由素數有限假設得到的結論「所有素數不大於N」矛盾了!也和我們根據假設得到的,M 是一個合數矛盾了! 因此我們的邏輯推理的起點——「素數有有限個」就是錯的,是不成立的。因此,素數有無窮多個。
(以極坐標形式排列的素數,形成美麗的螺旋)
歐幾裡得的證明和上述的思路是一致的,但要更加簡潔一些,為了便於理解和減少符號,我稍做了改動。總的來說,這個證明思路實在是太妙了!可以算是數學史上最著名的反證法證明之一了!
我之前也提到過,無窮多個素數,要全部找出來,靠一個一個驗證是不可能的。比如 判斷728587是否為質數。
首先做一下估算, 800*800=640000, 900*900=810000;
再進一步估算 820*820=672400 ,860*860=739600;
所以我們從820 開始一個個驗證大於820的每一個整數是否整除728587,通過不停的驗證,最終發現827整除728587,商是881。
通過這個例子,我們不難發現,在計算機發明之前,驗證一個大數是不是質數需要進行很多次的乘法、除法運算,還是比較困難的。特別是對於一些極其巨大的數字,運算量就更加大了。
那換一個思路,能不能找到一個什麼公式, 這個公式能計算出包含所有的素數呢?
目前,還沒有這樣的公式。但大牛人歐幾裡得觀察發現, 2的素數次方 減去1 例如
2的2次方 -1 =3, 2的3次方-1=7
2的5次方-1=31 , 2的7次方-1=127
都是素數。看到這裡你一定會猜測,你也許會這樣猜測:
是不是所有的素數都可以寫成 「2的素數次方減去1 」。這個容易驗證, 11, 17 都不能這樣寫,所以顯然這個猜測是不對的;
那麼退一步,是不是:2的素數次方減去1 都是素數呢?
這樣的猜測是很棒的,但正如著名學者胡適所說,做學問要「大膽假設,小心求證」。這個結論還需要進一步證明或者找出反例。
這個問題的答案是,一部分是,但不都是。例如,人們發現, 2的67次方減去1 就不是質數。
不過,這倒是為我們尋找素數提供了一個好辦法。 如果不用這個思路,那麼我們需要一個個驗證,得到素數,現在如果我們只想得到一個儘可能大的素數,我們就可以嘗試用這樣的步驟:
1、找到已知的一個很大的素數p;
2、求2的p次方減去1;
3、驗證這個數是不是素數。
這實在比一個一個數驗證 來的快多了!目前為止人類找到的最大素數——2的74207281次方減去1,就是利用這個公式得到的。
最後需要指出的是,這類可以寫成
2的素數次方減去1
的素數我們把它們稱為梅森(Mersenne)素數,以紀念研究這類素數的17世紀法國數學家Martin Mersenne。