盧卡斯 萊默檢驗法，是數學中檢驗梅森數的素性檢驗，由法國數學家愛德華盧卡斯於 1878 年完善，美國數學家德里克亨利萊默隨後於 1930 年代將其改進。 因特網梅森質數大搜索用這個檢驗法找到了不少很大的質數，最近幾個最大的質數就是這個專案發現的。GIMPS Home Page Frequently Asked Questions General Questions What are Mersenne primes How are they useful httpwwwmersenneorgfaqhtmwhat 由於梅森數比隨機選擇的整數更有可能是質數，因此他們認為這是一個極有用的方法。 方法 盧卡斯－萊默檢驗法原理是這樣： 令梅森數 Mp 2p 1 作為檢驗物件（預設 p 是質數，否則 Mp 就是合數了）。 定義序列 si：所有的 i 0 s_i begin cases4 s_i122 end cases ，如果 displaystyle i 0； s_i begin cases4 s_i122 end cases ，如果 displaystyle i 0。 這個序列的開始幾項是 4 14 194 37634 那麼 Mp 是素數當且僅當 s_p2equiv0pmod M_p 否則，Mp 是合數。 sp 2 模 Mp 的餘數叫做 p 的盧卡斯－萊默餘數。 例子 假設我們想驗證 M3 7 是素數。我們從 s4 開始，並更新 32 1 次，把所有的得數模 7： s 44 2 mod 7 0 由於我們最終得到了一個能被 7 整除的 s，因此 M3 是素數。 另一方面，M11 2047 2389 就不是素數。我們仍然從 s4 開始，並更新 112 9 次，把所有的得數模 2047： s 44 2 mod 2047 14 s 1414 2 mod 2047 194 s 194194 2 mod 2047 788 s 788788 2 mod 2047 701 s 701701 2 mod 2047 119 s 119119 2 mod 2047 1877 s 18771877 2 mod 2047 240 s 240240 2 mod 2047 282 s 282282 2 mod 2047 1736 由於 s 最終仍未能被 2047 整除，因此 M112047 不是素數。但是，我們從這個檢驗法仍然無法知道 2047 的因子，只知道它的盧卡斯 萊默餘數 1736。 正確性的證明 我們注意到 langle s_i rangle 是一個具有閉式解的遞推關係。定義 omega 2 sqrt 3 及 bar omega 2 sqrt 3；我們可以用數學歸納法來驗證對於所有 i，都有 s_i omega2i bar omega2i： s_0 omega20 bar omega20 2 sqrt 3 2 sqrt 3 4。 begin arraylcl s_n s_n12 2 left omega2n1 bar omega2n1right2 2 omega2n bar omega2n 2 omegabar omega2n1 2 omega2n bar omega2n end array 最後一個步驟可從 omegabar omega 2 sqrt 32 sqrt 3 1 推出。在兩個部分中，我們都將用到這個結果。 充分性 我們希望證明 s_p2equiv0pmod M_p 意味著 M_p 是素數。我們敘述一個利用初等群論的證明，由 J W 布魯斯給出 J W Bruce A Really Trivial Proof of the LucasLehmer Test The American Mathematical Monthly Vol100 No4 pp370371 April 1993。 假設 s_p2 equiv 0 pmod M_p。那麼對於某個整數 k，有 omega2p2 bar omega2p2 kM_p，以及： begin arrayrcl omega2p2 kM_p bar omega2p2 left omega2p2right2 kM_pomega2p2 omegabar omega2p2 omega2p1 kM_pomega2p2 1quadquadquadquadquad 1 end array 現在假設 Mp 是合數，其非平凡素因子 q 2（所有梅森素數都是奇數）。定義含有 q2 個元素的集合 X a bsqrt 3 a b in mathbb Z_q，其中 mathbb Z_q 是模 q 的整數，是一個有限域。X 中的乘法運算定義為： a bsqrt 3c dsqrt 3 ac 3bd hbox mod q bc ad hbox mod qsqrt 3 由於 q 2，因此 omega 和 bar omega 位於 X 內。任何兩個位於 X 內的數的乘積也一定位於 X 內，但它不是一個群，因為不是所有的元素 x 都有逆元素 y，使得 xy 1。如果我們只考慮有逆元素的元素，我們便得到了一個群 X，它的大小最多為 q21（因為 0 沒有逆元素）。 現在，由於 M_p equiv 0 pmod q，且 omega in X，我們有 kM_pomega2p2 0，根據方程 1 可得 omega2p1 1。兩邊平方，得 omega2p 1，證明了 omega 是可逆的，其逆元素為 omega2p1，因此位於 X 內，它的目能整除 2p。實際上，這個階必須等於 2p，因為 omega2p1 neq 1，因此這個階不能整除 2p1。由於群元素的階最多就是群的大小，我們便得出結論，2p leq q2 1 q2。但由於 q 是 M_p 的一個非平凡素因子，我們必須有 q2 leq M_p 2p1，得出矛盾 2p 2p1。因此 M_p 是素數。 必要性 我們假設 M_p 是素數，欲推出 s_p2 equiv0pmod M_p。我們敘述一個 Öystein J R Ödseth 的證明 Öystein J R Ödseth A note on primality tests for N h2n 1 Department of Mathematics University of Bergen httpwwwuibnoPeoplenmaoypaperslucpdf 。首先，注意到 3 是模 Mp 的二次非剩餘，這是因為對於奇數 p 1，2 p 1 只取得值 7 mod 12，因此從勒讓德符號的性質可知 3M_p 是1。根據尤拉準則，可得： 3M_p12 equiv 1 pmod M_p 另一方面，2 是模 M_p 的二次剩餘，這是因為 2p equiv 1 pmod M_p，因此 2 equiv 2p1 left 2p12right2 pmod M_p。根據尤拉準則，可得： 2M_p12 equiv 1 pmod M_p 接著，定義 sigma 2sqrt 3，並像前面那樣，定義 X 為 a bsqrt 3 a b in mathbb Z_M_p 的乘法群。我們將用到以下的引理： xyM_p equiv xM_p yM_p pmod M_p （根據費馬小定理），以及 aM_p equiv a pmod M_p 對於所有整數 a（費馬小定理）。 那麼，在群 X 中，我們有： begin arraylcl 6sigmaM_p 6M_p 2M_psqrt 3M_p 6 2 3M_p12sqrt 3 6 2 1sqrt 3 6 sigma end array 簡單計算可知 omega 6sigma224。我們可以用這個結果來計算群 X 中的 omegaM_p12： begin arraylcl omegaM_p12 6 sigmaM_p124M_p12 6 sigmaM_p6 sigma24 times 24M_p12 6 sigma6 sigma24 1 end array 其中我們用到了以下的事實： 24M_p12 2M_p123 3M_p12 13 1 1。 由於 M_p equiv 3 pmod 4，我們還需要做的就是把方程的兩邊乘以 bar omegaM_p14，並利用 omegabar omega1： begin arrayrcl omegaM_p12bar omegaM_p14 bar omegaM_p14 omegaM_p14 bar omegaM_p14 0 omega2p114 bar omega2p114 0 omega2p2 bar omega2p2 0 s_p2 0 end array 由於 sp2 是整數，且在 X 內是零，因此它也是零 mod Mp。 參見 梅森素數 因特網梅森素數大搜索（GIMPS） 新梅森猜想 埃拉託斯特尼篩法 米勒 拉賓檢驗 試除法 費馬素性檢驗 盧卡斯 萊默檢驗法 孿生素數 三胞胎素數 四胞胎素數 素數判定法則 表兄弟素數 六素數 X²1 素數 註釋 參考文獻 Section 421 The LucasLehmer test pp167170 外部連結 GIMPS The Great Internet Mersenne Prime Search A proof of LucasLehmerReix test for Fermat numbers LucasLehmer test at MersenneWiki Category 素性測試 Category 梅森素數