リュカ-レーマーテストは素数番目のメルセンヌ数(

)が素数であるかを効率的に判定する
素数判定アルゴリズムである。
用いている定理
数列

を次のように定義する。
pを素数とすると、

が成立するとき、

は素数であり、かつその時に限る。
メルセンヌ数での剰余のとり方
メルセンヌ数

は

という形で表されるため、2進数で計算しているコンピューターでは剰余算が非常に簡単にできる。
割られる数をnとすると、nは

と表すことができる。

より、二進数でp桁以下になるまで最上位からp+1桁目までをpビット右シフトしたものを下位p桁と足しあわせればよい。
最終更新:2012年06月30日 18:18