質數的定義是什么?
質數,在《數論》上習慣稱為素數(也叫做,不可約數),是一類特殊的整數。
素數被定義為:
只能被 1 和 自身整除的 正整數,但 1 除外。
(由于整數關于 0 對稱,于是只要將正整數部分的研究清楚了,負整數也就清楚了,因此一般不講負素數。)
數學家發現,任何一個正整數(1 除外),都可以唯一的表示為有限個素數的乘積,每個素數稱為該整數的素因子,整個乘積稱為該整數的素因子分解。例如:
6 = 2×3
當然,素因子可以重復,例如:
12 = 2 × 2 × 3
因為 如果 1 也是素數,則:
6 = 2×3 = 1×2×3 = 1 × 1 ×2×3 = ...
于是,為了,素因子分解結果唯一,我們不得不讓 1 排除在 素數 之外。
素數可以理解為:乘法運算中不可再分解的數,而加法中不可再分解的數只有1。我們可以通過1不斷相加得到所有正整數,同樣我們可以通過素數相互不斷相乘得到所有正整數(1除外)。
從正整數中找到素數是首要的問題!可以直接根據定義,一個個數判斷,但這樣太慢,數學家一般使用從正整數中排除不是素數的數(稱為合數,1除外)的辦法,稱為篩選法。
如果,正整數 a > 1 的 素因子分解 為:
a = p? × p? × ... × p?
則,一定存在一個素因子 p ∈ {p?, p?, ... p? } 使得 p ≤ ?√a。
這個很顯然!如果,每個p? > ?√a,則 p? × p? × ... × p? >( ?√a)? = a,矛盾。而我們知道,素數在做素因子分解時,只有一個因子,即它自己,例如:
3 = 3
而合數 最少 兩個,例如:
6 = 2×3
于是 合數 a 必然存在 素因子 p ≤ √a。
于是,我們需要找出 N 內的 素數,只需要 找到 √N 內的素數,然后 用這些 素數 去判斷 √N 到 N 之間的 正整數 是否是 合數,將是合數的刪掉,剩下的就是 素數。這稱為 Eratoschenes(埃拉托斯特尼) 篩選法。實例如下:
我們先找到 10 以內的 素數:2,3,5,7;然后 對 10 到 102 = 100 進行篩選:
用 2 篩掉:11, 12, ... , 99, 100;
用 3 篩掉:11, 13, 15, 17, ... , 97, 99;
用 5 篩掉:11, 13, 17, 19, 23, 25, 29, 35, ..., 95, 97;
用 7 篩掉:11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 49, ..., 91, 97;
于是得到:11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97;有了 100 以內 的素數,然后,對 100 到 1002 = 10000 進行篩選 ...
(其實,在具體用 p 進行篩選時,只需要從 p2 開始篩選就可以了,因為 小于 p2 的數,如果具有 p 因子,則 一定具有 小于 p 的素因子,這已經被之前的小于 p 的素因子篩掉了。)
(頭條里多位老師也給出了自己的篩選法,大家可以參考借鑒!)
那么,我們使用 篩選法是否可以將 素數 篩完呢?答案是不可能,因為:
素數有無窮多個。
這是一個著名定理,證明如下:
假設,素數有限,記為 p?, p?, ..., p? 。現在,令 a = p? × p? × ... × p? + 1,顯然 a 不是任意 一個 素數,且 大于 2, 于是 a 必然是合數,于是存在 素數 p? | a (| 表示 整除)。而 p? 是 p?, p?, ..., p? 中的一員,于是 p? | p? × p? × ... × p?,進而 p? | (a - p? × p? × ... × p?) ,即 p? | 1,于是 p? = 1,而 p? 是素數 必然 p? > 1,矛盾。將素數從 小到大排列,記為,
p? = 2, p? = 3, p? = 5, ...
數學家發現:
p? ≤ 2^{2??1}
因為:
上面那個定理的證明過程,還說明,在 p? 到 a = p? × p? × ... × p? + 1 之間必然有 一個 素數 p???,即,p??? ≤ p? × p? × ... × p? + 1,利用這個結果,進行如下證明:● 當 r = 1 時,顯然 p? = 2 ≤ 2^{21?1} = 21 = 2,定理成立;● 如果 當 r ≤ i 時,命題成立,即,p? ≤ 2^{2?}, p? ≤ 2^{21}, ..., p? ≤ 2^{2??1},則 當 r = i + 1 時,根據 前面的 不等式,有:p??? ≤ p? × p? × ... × p? + 1 ≤ 2^{2?} × 2^{21} × ... ×2^{2??1} + 1 = 2^{2? + 21 + ... + 2??1} + 1 = 2^{2? - 1} + 1 ≤ 2^{2? - 1} + 2^{2? - 1} = 2 × 2^{2? - 1} = 2^{2?};歸納得證。如果,將不超過 x 的 素數個數,記為 π(x),則上面的命題等價于:
π(x) > log?(log?x)
因為:
對于任意 x ≥ 2 ,顯然有 唯一正整數 r 使得:2^{2??1} ≤ x < 2^{2?},● 由上面的左邊不等式得到:π(2^{2??1}) ≤ π(x) ,而前面已經證明了 p? ≤ 2^{2??1},而 到 p? 的素數 當然是 r 個 所以:r ≤ π(2^{2??1}),于是,最終有:r ≤ π(x),● 由上面的右邊不等式得到:log?(log?x) < r,綜上可到:log?(log?x) < π(x)。素數的定義雖然很簡單,但是確意想不到的麻煩!數學家至今依然沒有找到素數在正整數中的準確分布規律。
(楊老師<@楊式素數>,在這方面很有研究,大家有興趣可以去他那里請教。)
(黎曼猜想有助于解決素數分布問題!)
(退而求其次,數學家還發明的 偽素數的概念:
如果 n | 2? - 2,稱 n 為 偽素數,如果 對于任意 整數 a 都有 n | a? - a 稱 n 為 絕對偽素數。
關于,偽素數分布 也是一個研究方向。)
除了 2 其它素數都是 奇數,2 是最小的素數,3 是最小的奇數素數。
兩個相鄰的奇數如果都是素數稱為孿生素數,例如:3 和 5,5 和 7 , 11 和 13, ...。
三個相鄰奇數是素數的情況,只能是: 3,5,7 這一種情況,因為:
假設,相鄰三個相鄰奇數,a, b, c > 3 都是素數,其中 b = a + 2,c = a + 4。由于 a 是素數,因此 3 ? a(? 表示 不能整除)于是 a = 3n + 1 或 3n + 2。● 當 a = 3n + 1 時,b = a + 2 = 3n + 1 + 2 = 3n + 3 = 3(n+1),顯然 3 | b,故 b 不是素數,矛盾;● 當 a = 3n + 2 時,c = a + 4 = 3n + 2 + 4 = 3n + 6 = 3(n + 2),顯然 3 | c,故 c 不是素數,矛盾;以上證明,也說明了三個以上相鄰的奇數是素數不可能。
于是,研究特殊的 孿生素數 就有了價值。但是 比 素數 還不爭氣,數學家連孿生素數是否有無窮多個都沒辦法證明。
(數學家 張益唐 在這方面取得了 巨大突破!)
最后,和素數相關的一個概念是 兩個整數 a, b 互素,即 a, b 之間 a ? b 并且 b ? a,兩個素數一定互素,例如:
3, 5
但兩個 合數 也可以 互素,例如:
9, 25
互素在代數里也同樣至關重要。
(小石頭對于《數論》是門外漢,頭條里作這方面研究的大神眾多!小石頭在這里純粹是班門弄斧,歡迎各位老師蒞臨指導!)