Lucas–Lehmerの判定法(Lucas–Lehmer test)とは、奇素数 $p$ について、Mersenne 数 $M_p=2^p-1$ が素数であることと、$s_0=4$、$s_{k+1}=s_k^2-2$ で定めた整数の列の項 $s_{p-2}$ を $M_p$ が割ることが同値である、という素数判定法である。$s_k=(2+\sqrt3)^{2^k}+(2-\sqrt3)^{2^k}$ と書け、十分性は $M_p$ の素因数を法とした $2+\sqrt3$ の位数から、必要性は $3$ が素数 $M_p$ を法とする平方非剰余であることから証明される。判定は $M_p$ を法とする 2 乗と引き算を $p-2$ 回繰り返すだけで済む。
前提知識: Mersenne素数, 合同式, 元の位数, 平方剰余, 剰余環
$2^p-1$ の形の数が素数かどうかを、割り算で素因数を探さずに判定する方法がある。$s_0=4$ から始めて「2 乗して $2$ を引く」を繰り返し、$4,14,194,37634,\dots$ という数の列を作る。奇素数 $p$ について、$2^p-1$ が素数であることと、$2^p-1$ がこの列の項 $s_{p-2}$($s_0$ から数えて $p-1$ 個目)を割ることが同値になる。これが Lucas–Lehmer の判定法 である。計算は $2^p-1$ を法とする 2 乗と引き算を $p-2$ 回繰り返すだけで済むので、桁数の非常に大きな数にも使える。
この記事では次のことを示す。
| 問い | 答え |
|---|---|
| 何を判定するのか | 奇素数 $p$ について、$M_p=2^p-1$ が素数 $\iff$ $M_p\mid s_{p-2}$(thm-ll-main) |
| 列 $s_k$ の正体は何か | $\omega=2+\sqrt3$ と $\bar\omega=2-\sqrt3$ について $s_k=\omega^{2^k}+\bar\omega^{2^k}$(lem-ll-closed) |
| なぜ割り切れれば素数か | 素因数 $q$ を法として $\omega$ の位数が $2^p$ になり、元の個数 $q^2-1$ を超える(prf-ll-sufficiency) |
| なぜ素数なら割り切れるか | $3$ が $M_p$ を法とする平方非剰余で、$\sqrt3$ の $M_p$ 乗が $-\sqrt3$ になる(prf-ll-necessity) |
| 条件は外せるか | $p=2$ や初期値 $3$ では成り立たない(ex-ll-counter-p2・ex-ll-counter-start3) |
正の整数 $n$ に対し $M_n:=2^n-1$ を Mersenne 数 といい、$M_n$ が素数のとき Mersenne 素数 という。$M_n$ が素数なら $n$ は素数である(Mersenne素数 の系「素数になるための指数の条件」)。
整数の列 $(s_k)_{k\ge0}$ を
$$
s_0:=4,\qquad s_{k+1}:=s_k^2-2\quad(k\ge0)
$$
で定める。これを Lucas–Lehmer 数列 という。正の整数 $m$ を法として $s_k$ を考えるときは、各段で $m$ で割った余りを取ってから次の項を作ってよい($a\equiv b\pmod m$ なら $a^2-2\equiv b^2-2\pmod m$)。
最初の項は $s_0=4$、$s_1=14$、$s_2=194$、$s_3=37634$、$s_4=1416317954$ であり、桁数はほぼ 1 段ごとに倍になる。判定に使うのは $M_p$ で割った余りだけである。
$p$ を奇素数とする。$M_p=2^p-1$ が素数であることと、$M_p\mid s_{p-2}$ であることは同値である。
十分性($M_p\mid s_{p-2}$ なら $M_p$ は素数)により、割り切れれば $M_p$ が素数であることが証明される。必要性($M_p$ が素数なら $M_p\mid s_{p-2}$)により、割り切れなければ、素因数を 1 つも見つけずに $M_p$ が合成数であることが分かる。どちらの向きもこの記事で証明する(prf-ll-sufficiency・prf-ll-necessity)。
Lucas は 1876 年にこの種の判定法を見つけて $M_{127}$ が素数であることを示したが(HW60 §2.5, p. 16)、判定法の完全な証明は発表しなかった(同書第 15 章の注, p. 231)。HW60 §15.5 の Theorem 259(p. 224)は、初期値を $3$ にした同じ形の判定法を $p\equiv3\pmod4$ の場合に証明し、初期値 $4$ の列では同じ形の判定法がすべての $p$ について成り立つと述べている(p. 225)。同じ注によれば、代数的数の理論を使わない証明を D. H. Lehmer(1930 年)が与えた。判定法を数行のプログラムで実行する例が Ste09 §2.4(p. 39)にある。
$\sqrt3$ は無理数なので、$a+b\sqrt3$($a,b\in\mathbb{Z}$)の形の実数の全体 $\mathbb{Z}[\sqrt3]$ では表し方 $(a,b)$ が一意であり、$\mathbb{Z}[\sqrt3]$ は足し算と掛け算で閉じた可換環である。
$$
\omega:=2+\sqrt3,\qquad \bar\omega:=2-\sqrt3
$$
とおくと、$\omega+\bar\omega=4$、$\omega\bar\omega=4-3=1$ である。
すべての $k\ge0$ について $s_k=\omega^{2^k}+\bar\omega^{2^k}$ である。
$k$ についての数学的帰納法で示す。$k=0$ では $\omega+\bar\omega=4=s_0$ である。$k$ で成り立つとすると、$\omega\bar\omega=1$ から
$$
s_{k+1}=s_k^2-2=\omega^{2^{k+1}}+2(\omega\bar\omega)^{2^k}+\bar\omega^{2^{k+1}}-2=\omega^{2^{k+1}}+\bar\omega^{2^{k+1}}
$$
となる。$\square$
$\omega$ と $\bar\omega$ は $X^2-4X+1=0$ の 2 つの根なので、$V_n:=\omega^n+\bar\omega^n$ は特性多項式 $X^2-4X+1$ の第 2 種の Lucas 数列であり(Lucas数列の関係式)、$s_k=V_{2^k}$ である。漸化式 $s_{k+1}=s_k^2-2$ は、添字を倍にする式 $V_{2n}=V_n^2-2(\omega\bar\omega)^n$ を $n=2^k$ に使ったものにあたる。
$q$ を素数とする。$\mathbb{Z}[\sqrt3]$ を、$q$ の倍数全体 $q\mathbb{Z}[\sqrt3]=\{qa+qb\sqrt3\mid a,b\in\mathbb{Z}\}$ で割った剰余環を
$$
R_q:=\mathbb{Z}[\sqrt3]/q\mathbb{Z}[\sqrt3]
$$
とおく。$a+b\sqrt3$ の像は $a,b$ を $q$ で割った余りだけで決まる。$R_q$ の元は $0\le a,b\le q-1$ の $a+b\sqrt3$ でちょうど 1 通りずつ代表され、全部で $q^2$ 個ある。演算は
$$
(a+b\sqrt3)(c+d\sqrt3)=(ac+3bd)+(ad+bc)\sqrt3
$$
の係数を $q$ で割った余りで行う。$R_q$ の掛け算について逆元をもつ元(単元)の全体を $R_q^\times$ と書く。$R_q^\times$ は掛け算について群をなす。整数 $n$ の $R_q$ での像は $n+0\cdot\sqrt3$ なので、$n$ の像が $0$ であることと $q\mid n$ は同値である。以下、$\omega,\bar\omega$ などの $R_q$ での像も同じ記号で書く。
$q$ を $3$ でない奇素数とし、$\left(\frac3q\right)$ を Legendre記号 とする。$R_q$ の任意の元 $a+b\sqrt3$ について
$$
(a+b\sqrt3)^q=a+\left(\frac3q\right)b\sqrt3
$$
が成り立つ。
$R_q$ は可換環なので二項定理が使え、
$$
(a+b\sqrt3)^q=\sum_{j=0}^{q}\binom qj a^{q-j}(b\sqrt3)^j
$$
である。$0< j< q$ では $\binom qj$ は $q$ で割り切れる(二項係数 の命題「素数に関する合同式」)ので、その項は $R_q$ で $0$ になり、$(a+b\sqrt3)^q=a^q+b^q(\sqrt3)^q$ が残る。Fermatの小定理 により整数 $a,b$ について $a^q\equiv a$、$b^q\equiv b\pmod q$ である。また $(\sqrt3)^q=3^{(q-1)/2}\sqrt3$ であり、平方剰余 の定理「Eulerの規準」により $3^{(q-1)/2}\equiv\left(\frac3q\right)\pmod q$ である。これらを合わせて主張を得る。$\square$
$p\ge3$ を奇数とし、$q:=M_p=2^p-1$ とおく。
1:$p\ge3$ なので $8\mid2^p$ であり、$q\equiv-1\equiv7\pmod8$ である。$2\equiv-1\pmod3$ と $p$ が奇数であることから $2^p\equiv(-1)^p=-1\equiv2\pmod3$ であり、$q\equiv1\pmod3$ である。
2:$q\equiv7\pmod8$ と 平方剰余 の定理「第2補充法則と相互法則」の 1 から $\left(\frac2q\right)=1$ である。$q\equiv1\pmod 3$ より $q\neq3$ であり、$3$ と $q$ は相異なる奇素数である。$q\equiv3\pmod4$ なので、同じ定理の 2(相互法則)により $\left(\frac3q\right)=-\left(\frac q3\right)$ である。$q\equiv1\pmod3$ より $\left(\frac q3\right)=\left(\frac13\right)=1$ なので、$\left(\frac3q\right)=-1$ である。$\square$
$p$ を奇素数とし、$M_p\mid s_{p-2}$ と仮定する。$M_p$ が合成数であったとして矛盾を導く。
$M_p$ の最小の素因数を $q$ とする。$M_p$ は合成数なので $q$ 以上の素因数を重複を込めて 2 つ以上もち、$q^2\le M_p$ である。また $M_p$ は奇数なので $q\ge3$ である。
$R_q$ で考える。$\omega\bar\omega=1$ なので $\omega\in R_q^\times$ である。$q\mid M_p\mid s_{p-2}$ と lem-ll-closed から、$R_q$ において
$$
\omega^{2^{p-2}}+\bar\omega^{2^{p-2}}=0
$$
である。両辺に $\omega^{2^{p-2}}$ を掛け、$(\omega\bar\omega)^{2^{p-2}}=1$ を使うと $\omega^{2^{p-1}}+1=0$、すなわち
$$
\omega^{2^{p-1}}=-1
$$
を得る。両辺を 2 乗して $\omega^{2^p}=1$ である。
$d$ を $R_q^\times$ における $\omega$ の元の位数とする。$\omega^{2^p}=1$ から $d\mid2^p$ なので、$d=2^j$($0\le j\le p$)と書ける。$j\le p-1$ なら $d\mid2^{p-1}$ から $\omega^{2^{p-1}}=1$ となり、上の式と合わせて $R_q$ で $-1=1$、すなわち $2=0$ となる。これは $q\mid2$ を意味し、$q\ge3$ に反する。よって $d=2^p$ である。
位数 $d$ の元の冪 $\omega^0,\omega^1,\dots,\omega^{d-1}$ は $R_q^\times$ の相異なる元であり、$0\notin R_q^\times$ なので $|R_q^\times|\le q^2-1$ である。したがって
$$
2^p=d\le|R_q^\times|\le q^2-1\le M_p-1=2^p-2
$$
となり、矛盾する。よって $M_p$ は素数である。$\square$
この証明は $p$ が素数であることを使っていない。使ったのは $p\ge2$ と $q\ge3$ だけである。
$p$ を奇素数とし、$q:=M_p$ が素数であると仮定する。lem-ll-residues により $q\neq3$、$\left(\frac2q\right)=1$、$\left(\frac3q\right)=-1$ である。
$R_q$ で $\tau:=1+\sqrt3$ とおく。$\tau^2=4+2\sqrt3=2\omega$ である。lem-ll-frobenius と $\left(\frac3q\right)=-1$ から $\tau^q=1-\sqrt3$ なので、
$$
\tau^{q+1}=\tau^q\cdot\tau=(1-\sqrt3)(1+\sqrt3)=-2
$$
である。$q+1=2^p$ は偶数なので、左辺は $\tau^{q+1}=(\tau^2)^{(q+1)/2}=(2\omega)^{(q+1)/2}=2^{(q+1)/2}\,\omega^{(q+1)/2}$ と書ける。一方 平方剰余 の定理「Eulerの規準」と $\left(\frac2q\right)=1$ から $2^{(q-1)/2}\equiv1\pmod q$ なので、$2^{(q+1)/2}=2\cdot2^{(q-1)/2}\equiv2\pmod q$ である。よって $R_q$ で
$$
2\,\omega^{(q+1)/2}=-2
$$
となる。$q$ は奇素数なので $2$ は法 $q$ で逆元をもち、$\omega^{(q+1)/2}=-1$ を得る。$(q+1)/2=2^{p-1}$ なので
$$
\omega^{2^{p-1}}=-1
$$
である。両辺に $\bar\omega^{2^{p-2}}$ を掛けると、左辺は $\omega^{2^{p-2}}(\omega\bar\omega)^{2^{p-2}}=\omega^{2^{p-2}}$ となり、
$$
\omega^{2^{p-2}}+\bar\omega^{2^{p-2}}=0
$$
を得る($p\ge3$ なので $2^{p-2}$ は正の整数である)。lem-ll-closed により左辺は整数 $s_{p-2}$ の $R_q$ での像なので、$q\mid s_{p-2}$、すなわち $M_p\mid s_{p-2}$ である。$\square$
必要性の証明で $p$ について使ったのは、$p\ge3$ が奇数であること(lem-ll-residues)だけである。十分性の証明と合わせると、次が得られる。
$p\ge3$ を奇数とする(素数でなくてよい)。$M_p$ が素数であることと $M_p\mid s_{p-2}$ であることは同値である。
十分性は prf-ll-sufficiency が $p$ の素数性を使わないことから従う。必要性は、$M_p$ が素数なら prf-ll-necessity がそのまま使えることから従う(そもそも $M_p$ が素数なら $p$ は素数である)。$\square$
各段で $M_p$ で割った余りを取りながら $s_0,s_1,\dots,s_{p-2}$ を計算すると、次のようになる。
| $p$ | $M_p$ | $s_0,s_1,\dots,s_{p-2}$ を $M_p$ で割った余り | 判定 |
|---|---|---|---|
| $3$ | $7$ | $4,\ 0$ | 素数 |
| $5$ | $31$ | $4,\ 14,\ 8,\ 0$ | 素数 |
| $7$ | $127$ | $4,\ 14,\ 67,\ 42,\ 111,\ 0$ | 素数 |
| $11$ | $2047$ | $4,\ 14,\ 194,\ 788,\ 701,\ 119,\ 1877,\ 240,\ 282,\ 1736$ | 合成数 |
| $13$ | $8191$ | $4,\ 14,\ 194,\ 4870,\ 3953,\ 5970,\ 1857,\ 36,\ 1294,\ 3470,\ 128,\ 0$ | 素数 |
たとえば $p=5$ では $s_2=194=6\cdot31+8$、$s_3\equiv8^2-2=62=2\cdot31$ である。$p=11$ では最後の余りが $1736\neq0$ なので、thm-ll-main により $2047$ は合成数である。この判定は $2047=23\cdot89$ という分解を見つけずに合成数であることを示している。
$M_{11}=2047=23\cdot89$ の素因数 $q=23,89$ で、$R_q^\times$ における $\omega=2+\sqrt3$ の位数を直接計算すると、$q=23$ では $11$、$q=89$ では $90$ である。prf-ll-sufficiency で見たとおり、素数 $q\ge3$ が $s_9$ を割るなら $R_q^\times$ における $\omega$ の位数は $2^{11}=2048$ でなければならない(その議論は $q\mid s_{p-2}$ と $q\ge3$ しか使わない)。実際の位数 $11$ と $90$ は $2$ の冪でないので、$23\nmid s_9$ かつ $89\nmid s_9$ であり、上の表の $s_9\equiv1736$ と合う($1736=23\cdot75+11=89\cdot19+45$)。
$p=9$ では $M_9=511=7\cdot73$ である。余りは $4,14,194,331,205,121,331,205$ と進み、$s_7\equiv205\neq0\pmod{511}$ である。cor-ll-odd のとおり、$p$ が素数でなくても判定の結論は正しい。
thm-ll-main の条件を 1 つずつ変えると、同値が崩れる。
| 変える条件 | 反例 | 崩れること |
|---|---|---|
| $p$ が奇数 | $p=2$:$M_2=3$ は素数だが $s_0=4$ は $3$ で割り切れない | 必要性(素数なら割り切れる) |
| 初期値 $s_0=4$ | 初期値 $3$、$p=5$:$M_5=31$ は素数だが $p-2$ 番目の項の余りは $6$ | 必要性 |
| 判定に使う量 $s_{p-2}$ | 底 $2$ の Fermat の条件:$2^{2046}\equiv1\pmod{2047}$ だが $2047$ は合成数 | 十分性(条件を満たせば素数) |
$p=2$ は奇数という条件だけを外した場合である。$M_2=3$ は素数だが、$s_{p-2}=s_0=4$ は $3$ で割り切れない。崩れるのは必要性である。prf-ll-necessity で使った lem-ll-residues は $p\ge3$ を要し、$p=2$ では $q=3$ となって $\left(\frac3q\right)$ が $\pm1$ にならない($3\mid3$)。一方、十分性の証明は $p=2$ でも通る。
$t_0:=3$、$t_{k+1}:=t_k^2-2$ とし、$s_k$ の代わりに $t_{p-2}$ を使う。$p=5$、$M_5=31$ では余りが $3,7,16,6$ と進み、$t_3\equiv6\not\equiv0\pmod{31}$ だが、$31$ は素数である。崩れるのは必要性である。$p=13,17$ でも同じことが起こる($M_{13}=8191$、$M_{17}=131071$ はどちらも素数だが、$t_{p-2}$ の余りはそれぞれ $789$、$48816$)。
$t_k$ は $\varphi=\frac{1+\sqrt5}2$、$\bar\varphi=\frac{1-\sqrt5}2$ について $t_k=\varphi^{2^{k+1}}+\bar\varphi^{2^{k+1}}$ と書ける($\varphi^2+\bar\varphi^2=3$、$(\varphi\bar\varphi)^2=1$ から lem-ll-closed と同じ計算)。prf-ll-necessity と同じ形の証明では、$3$ の代わりに $5$ が $M_p$ を法とする平方非剰余であることを使うことになる。$p\equiv1\pmod4$ では $2^p\equiv2\pmod5$ なので $M_p\equiv1\pmod5$ となり、$5$ は平方剰余になってしまう。$p\equiv3\pmod4$ なら初期値 $3$ でも判定法が成り立つ(HW60 Theorem 259。$p=7$ では余りが $3,7,47,48,16,0$ と進み、$127$ は素数と判定される)。
素数 $n$ なら $2^{n-1}\equiv1\pmod n$ である(Fermatの小定理)。この条件を Mersenne 数の判定に使うことはできない。$p$ が素数なら、合成数の $M_p$ も含めて常に
$$
2^{M_p-1}\equiv1\pmod{M_p}
$$
が成り立つからである。実際、$2^p\equiv1\pmod{M_p}$ であり、Fermat の小定理から $p\mid2^p-2=M_p-1$ なので、$2^{M_p-1}=(2^p)^{(M_p-1)/p}\equiv1\pmod{M_p}$ となる。たとえば $2^{2046}\equiv1\pmod{2047}$ だが $2047=23\cdot89$ である($2047$ は底 $2$ の Fermat擬素数)。崩れるのは十分性である。Lucas–Lehmer の判定法は、$2$ の代わりに $\omega=2+\sqrt3$ の位数を使うことで、この見落としを避けている。
$M_p$ の素数判定は、$s_0$ から $s_{p-2}$ まで $p-2$ 回の「$M_p$ を法とする 2 乗と $2$ の引き算」で済む。さらに $M_p=2^p-1$ を法とする余りは割り算なしで取れる。$0\le x$ を二進表示で上位と下位に分けて $x=h\cdot2^p+\ell$($0\le\ell< 2^p$)と書くと、$2^p\equiv1\pmod{M_p}$ から
$$
x\equiv h+\ell\pmod{M_p}
$$
である。$x< M_p^2$ なら $h+\ell< 2^{p+1}$ なので、この足し込みを高々 2 回行い、最後に $M_p$ 以上なら $M_p$ を引けば余りが得られる。二進表示で動く計算機ではこれは桁の移動と足し算だけである。巨大な Mersenne 数の素数判定が実際に行えるのは、この 2 つの理由による。
一般の数 $n$ の素数判定では、$n-1$ や $n+1$ の素因数分解が分かっていれば、ある群の元の位数が大きいことから $n$ の素因数が大きいことを導く方法がある(素数判定法)。Lucas–Lehmer の判定法は $n+1=2^p$ の分解がはじめから分かっている場合にあたり、$\omega$ の位数がちょうど $n+1$ になるかどうかを見ている。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する