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

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

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

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

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

概要

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

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

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

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

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

十分性の証明

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

ω2p−2+ω¯2p−2=kF

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

ω2p−1+1=kFω2p−2

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

ω2p=k2F2ω2p−1−2kFω2p−2+1.

よって、

ω2p≡1(modF)

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

G={gn|gn=an+bn3≡ωn(modF), 0≦an<F, 0≦bn<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 ≤ e ≤ Fテンプレート:Sup − 1 となる。

ω2p≡1(modF)

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

ω2p−1≡1(modF)

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

ω2p−1+1=kFω2p−2

より、

ω2p−1≡−1(modF)

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

F≦Q<2p2.

よって、Fテンプレート:Sup − 1 < 2テンプレート:Sup となる。 よって、2テンプレート:Sup = e なので、Fテンプレート:Sup − 1 < e となり 1 ≤ e ≤ Fテンプレート: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+...+(QQ−1)(3)Q−1+(3)Q

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

(1+3)Q≡1+(3)Q(modQ)=1+3Q−12(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.

つまり、

3Q−12≡−1(modQ)

が成り立ち、よって、

(1+3)Q≡1+(−1)3(modQ).

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

(1+3)Q+1(Q+12)≡−Q−1(modQ).

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

(Q+1)2Q−12ωQ+12≡2Q−12ωQ+12(modQ)≡−1(modQ)

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

2Q−12≡1(modQ).

よって、

ωQ+12≡−1(modQ).

ここで、Q+12=2p−1なので、

ω2p−1≡−1(modQ)

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

ω2p−1ω¯2p−2=(ω2p−2)2(ω¯2p−2)=ω2p−2≡−ω¯2p−2(modQ).

両辺にω¯2p−2を足して、

ω2p−2+ω¯2p−2=Sp−2≡0(modQ).

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

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

Sp−2≡0(modQ)⟺∀u∈ℕ[2≦u<Q→Q≢0(modu)]

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

脚注

テンプレート:Reflist

参考文献

関連文献

関連項目

外部リンク

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