リュカ–レーマー・テストの証明

提供: testwiki
ナビゲーションに移動 検索に移動

リュカ–レーマー・テストテンプレート:Lang-en)とは、素数判定法の1つ。メルセンヌ数 Mテンプレート:Sub = 2テンプレート:Sup − 1 の素数判定のみに特化している。

名称は、フランス数学者エドゥアール・リュカおよびアメリカ数学者テンプレート:仮リンクにちなんで名付けられた。

リュカ–レーマー・テストをさらに一般化した素数判定法であるリュカ–レーマー–リーゼル・テストも参照。

概要

初項 S0=4漸化式 Sn+1=Sn22一般項 Sn=ω(2n)+ω¯(2n) で定義される数列 Sテンプレート:Sub , Sテンプレート:Sub , Sテンプレート:Sub , ... について考える(ただし、 ω=2+3, ω¯=23 。)。

p奇素数のとき、メルセンヌ数 Mテンプレート:Sub = 2テンプレート:Sup − 1 が素数であるための必要十分条件は、Sテンプレート:SubMテンプレート:Sub で割り切れることである[1][2][3]

なおフェルマー数にも、同様な素数判定の定理であるテンプレート:Ill2が存在する。

リュカ–レーマー・テストの証明

以下、Q = 2テンプレート:Sup − 1 とする。

十分性の証明

テンプレート:Quotation まず、Sテンプレート:Sub ≡ 0 (mod Q) であれば、Q が素数であることを証明する。 Sテンプレート:Sub ≡ 0 (mod Q) で、かつ Q が合成数だと仮定する。すると、Sテンプレート:SubQ の一番小さい素因数 F を用いて Sテンプレート:Sub = kFkは自然数)と表せる。Sテンプレート:Sub の一般項から

ω2p2+ω¯2p2=kF

となる。 ωω¯=1なので、両辺にω2p2をかけて、

ω2p1+1=kFω2p2

1を移項し、両辺を2乗すると、

ω2p=k2F2ω2p12kFω2p2+1.

よって、

ω2p1(modF)

となる。ここで、a+b3c+d3a, b, c, dは整数)で表される数を考えたとき、ac (mod F) かつ bd (mod F) の時に二つの数は F を法として合同であるとする。そして、

G={gn|gn=an+bn3ωn(modF), 0an<F, 0bn<F}

という集合 G ではどの要素 gテンプレート:Sub にも gテンプレート:Subgテンプレート:Sub ≡ 1 (mod F) となるような gテンプレート:Sub が存在する。つまり、集合 G には0は含まれない。よって、集合 G には最大で F テンプレート:Sup − 1 個の相異なる要素しか含まれない。gテンプレート:Sub = 1 となる n のうち最小のものを e とすると任意の自然数 r について gテンプレート:Sub = gテンプレート:Sub (jは0以上の整数) が成り立つ。よって 1 ≤ eFテンプレート:Sup − 1 となる。

ω2p1(modF)

より、2テンプレート:Supe の倍数。2テンプレート:Sup > e ならば、e = 2テンプレート:Sup (tは0以上p−1以下の整数)となる。言い換えれば 2テンプレート:Supe の倍数となる。つまり、

ω2p11(modF)

となるはずである。しかし、上の式、

ω2p1+1=kFω2p2

より、

ω2p11(modF)

よって、2テンプレート:Sup = e となる。しかし、FQ の一番小さい素因数なので、

FQ<2p2.

よって、Fテンプレート:Sup − 1 < 2テンプレート:Sup となる。 よって、2テンプレート:Sup = e なので、Fテンプレート:Sup − 1 < e となり 1 ≤ eFテンプレート:Sup − 1 と矛盾する。 よって、背理法により、Sテンプレート:Sub ≡ 0 (mod Q) ということは、Q は素数であるということの十分条件である。

必要性の証明

テンプレート:Quotation 次に p が奇素数であり、かつ Q が素数であれば、Sテンプレート:Sub ≡ 0 (mod Q) であることを証明する。 この証明をするうえで、平方剰余の相互法則を使う。 まず、二項定理より、

(1+3)Q=1+(Q1)(3)+(Q2)(3)2+...+(QQ1)(3)Q1+(3)Q

Q は素数なので(Qn)=Q!n!(Qn)!n = 0, Q の場合を除いて Q の倍数。よって、

(1+3)Q1+(3)Q(modQ)=1+3Q12(3)

Q ≡ −1 (mod 4), 3 ≡ −1 (mod 4) で、平方剰余の相互法則により、

(Q3)(3Q)=1

Q = 2テンプレート:Sup − 1 = 2(2テンプレート:Sup − 1) + 1 = 2((3 + 1)テンプレート:Sup − 1) + 1 ≡ 1テンプレート:Sup (mod 3)よって

(3Q)=1,(Q3)=1.

つまり、

3Q121(modQ)

が成り立ち、よって、

(1+3)Q1+(1)3(modQ).

両辺に(1+3)(Q+12)を掛けて、

(1+3)Q+1(Q+12)Q1(modQ).

この式は(1+3)2=4+23=2ωを利用して、

(Q+1)2Q12ωQ+122Q12ωQ+12(modQ)1(modQ)

とも書ける。 平方剰余の相互法則の第2補充法則(2Q)=(1)Q218=1により、

2Q121(modQ).

よって、

ωQ+121(modQ).

ここで、Q+12=2p1なので、

ω2p11(modQ)

となる。両辺にω¯2p2を掛けて、

ω2p1ω¯2p2=(ω2p2)2(ω¯2p2)=ω2p2ω¯2p2(modQ).

両辺にω¯2p2を足して、

ω2p2+ω¯2p2=Sp20(modQ).

よって、Sテンプレート:Sub ≡ 0 (mod Q) であることは、Q が素数であることの必要条件である。

以上により、リュカ-レーマー・テスト

Sp20(modQ)u[2u<QQ≢0(modu)]

が示された。Q.E.D.

脚注

テンプレート:Reflist

参考文献

関連文献

関連項目

外部リンク

  1. 中村(2008)、84-85頁
  2. 和田(1981)、50-52頁、194-199頁
  3. 和田(1999)、§5 リュカ・テスト