主題
Search

盧卡斯-萊默檢驗


盧卡斯-萊默檢驗是一種高效的確定性 素性檢驗,用於確定 梅森數 M_n 是否為素數。由於已知梅森數只有在素數下標時才可能是素數,因此可以將注意力限制為形如 M_p=2^p-1 的梅森數,其中 p 是一個 奇素數

考慮以下遞推方程

 s_n=s_(n-1)^2-2 (mod M_p)
(1)

其中 s_0=4。例如,忽略同餘,此迭代的前幾個項為 4, 14, 194, 37634, 1416317954, ... (OEIS A003010)。

結果表明,M_p 是素數 當且僅當 s_(p-2)=0 (mod M_p),且值 s_(p-2) (mod M_p) 稱為 p 的盧卡斯-萊默剩餘。

例如,對於 p=7 獲得的序列為 4, 14, 67, 42, 111, 0,因此 M_7=127 是素數。

對於素數 p,前幾個盧卡斯-萊默剩餘為 1, 0, 0, 0, 1736, 0, 0, 0, 6107895, 458738443, 0, 117093979072, ... (OEIS A095847)。

此檢驗也可以擴充套件到任意 整數。在普拉特 (1975) 的工作之前,盧卡斯-萊默檢驗一直被純粹視為一種啟發式方法,在很多時候都有效 (Knuth 1969)。普拉特 (1975) 表明,透過將萊默的素性啟發式方法遞迴地應用於 n-1 的因子,可以使之成為一種非確定性程式,從而產生一種素性證明,即後來的 普拉特證書

盧卡斯-萊默檢驗的廣義版本允許

 N+1=product_(j=1)^nq_j^(beta_j),
(2)

其中 q_j 是不同的 素因子beta_j 是它們各自的 。如果存在一個 盧卡斯序列 U_nu 使得

 GCD(U_((N+1)/q_j),N)=1
(3)

對於 j=1, ..., n 並且

 U_(N+1)=0 (mod N),
(4)

那麼 N 是一個 素數。這簡化為 梅森數 的傳統盧卡斯-萊默檢驗。


另請參閱

盧卡斯序列, 梅森數, 梅森素數, 普拉特證書, 拉賓-米勒強偽素數檢驗

使用 探索

參考文獻

Knuth, D. E. §4.5.4 in 計算機程式設計藝術,第 2 卷:半數值演算法。 Reading, MA: Addison-Wesley, 1969。Pratt, V. "Every Prime Has a Succinct Certificate." SIAM J. Comput. 4, 214-220, 1975。Ribenboim, P. "Primality Tests Based on Lucas Sequences." §2.V in 大素數之小書,第 2 版。 New York: Springer-Verlag, p. 63, 2004。Sloane, N. J. A. 序列 A003010/M3494 和 A095847 在“整數序列線上百科全書”中。

在 中被引用

盧卡斯-萊默檢驗

請引用為

Weisstein, Eric W. “盧卡斯-萊默檢驗”。來自 Web 資源。 https://mathworld.tw/Lucas-LehmerTest.html

主題分類