メルセンヌ数

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

メルセンヌ数(メルセンヌすう、テンプレート:Lang-en-short)とは、2の冪よりも テンプレート:Math 小さい自然数、すなわち テンプレート:Mathテンプレート:Mvar は自然数)の形の自然数のことである。これを テンプレート:Mvar で表すことが多い。メルセンヌ数を小さい順に列挙すると

テンプレート:数列

となる。メルセンヌ数は2進法表記で テンプレート:Mvar 桁の テンプレート:Math、すなわちレピュニットとなる。

「メルセンヌ数」の名は、この形の素数に関する予想を発表したマラン・メルセンヌに由来する。

基本的な性質

テンプレート:Mvarテンプレート:Math約数の総和に等しい。

テンプレート:Mvar が素数ならば テンプレート:Mvar もまた素数である。このことは、nが合成数のメルセンヌ数が次のように因数分解できることから分かる[1]テンプレート:Sfn

テンプレート:Math

また、この等式より、テンプレート:Math のとき テンプレート:Math である。一方、 テンプレート:Mvar が素数でも テンプレート:Mvar が素数とは限らない。最小の反例は テンプレート:Math の場合であり、テンプレート:Math が成り立つ。

奇素数 テンプレート:Mvar に対して テンプレート:Mvar が素数であるかどうかは、リュカ-レーマー・テストによって判定できる (#素数判定法節を参照)。

完全数

テンプレート:Math が素数ならば、テンプレート:Math完全数である[1][2]。この定理はすでに紀元前3世紀頃のユークリッド原論で証明されていたテンプレート:Sfn。したがって、完全数の探索はメルセンヌ素数の探索に終始された。

テンプレート:Mathならば、テンプレート:Math は明らかに偶数であるが、偶数の完全数でこの生成式から得られるもの以外はないのか2000年間にわたって未解決であったが、18世紀オイラーによりこの形に限ることが証明された[2]

メルセンヌ数の素因数

テンプレート:Mvar を素数とする。

倍積完全数

メルセンヌ数が素数でない場合も、 テンプレート:Math倍積完全数になることがある。テンプレート:Math が1の場合は1(唯一の1倍完全数)、4と10の場合はそれぞれ120523776(いずれも3倍完全数)、6の場合は2016(3倍完全数672の約数の和)になることが知られている。

メルセンヌ素数

メルセンヌ素数(メルセンヌそすう、Mersenne prime)とは、素数であるメルセンヌ数のことである。

2024年10月現在発見されているメルセンヌ素数は全部で52個ある。その中で最大のものは2024年10月に発見されたテンプレート:Math であり、十進法で表記したときの桁数は4102万4320桁に及ぶ[GIMPS 1]

これより大きい素数は、2024年11月現在メルセンヌ素数以外でも発見されていない。

メルセンヌ素数の発見の歴史

古代~中世

メルセンヌ素数の探求は紀元前3世紀ごろに端を発する。古代エジプトの数学者エウクレイデスは『原論』の中で、「テンプレート:Math が素数ならば、テンプレート:Math完全数である」ことを証明したテンプレート:Refn。ここから、メルセンヌ素数の探索は完全数の探索にも繋がることとなるテンプレート:Refnテンプレート:Refn

小さいメルセンヌ素数がいつから知られているかは定かではないが、少なくとも最初の4つの完全数はゲラサのニコマコスの『算術入門』ですでに言及されている[5][6]。5番目から7番目の完全数は、13世紀イスラムの数学者イブン・ファッルーステンプレート:Enlinkが論文に記している[7]。ヨーロッパでは、5番目の完全数が1456年と1461年の日付が付された古い写本に記されて[8][9]おり、6番目と7番目のメルセンヌ素数および完全数も1603年テンプレート:日本語版にない記事リンクによって発見されている[7]

メルセンヌの予想

メルセンヌの予想の表: p ≦ 263
〇:Mテンプレート:Subが素数の場合/×:Mテンプレート:Subが合成数の場合
水色が正解ピンク色が間違いを示す[10]
p 2 3 5 7 11 13 17 19
Mテンプレート:Sub ×
p 23 29 31 37 41 43 47 53
Mテンプレート:Sub × × × × × × ×
p 59 61 67 71 73 79 83 89
Mテンプレート:Sub × × × × × ×
p 97 101 103 107 109 113 127 131
Mテンプレート:Sub × × × × × ×
p 137 139 149 151 157 163 167 173
Mテンプレート:Sub × × × × × × × ×
p 179 181 191 193 197 199 211 223
Mテンプレート:Sub × × × × × × × ×
p 227 229 233 239 241 251 257 263
Mテンプレート:Sub × × × × × × × ×

1644年マラン・メルセンヌは「素数 テンプレート:Mvarテンプレート:Math が素数になるのは、テンプレート:Math では テンプレート:Math の11個の場合だけである」という予想を公表した[7][11]。しかしメルセンヌ自身はその予想を証明することができず、しかもその予想の一部は誤っていた。

成果をもたらしたのはメルセンヌが予想を公表してから128年後、1772年オイラーテンプレート:Math では素数)[1]テンプレート:Sfnである。その次の成果はさらに104年後、1876年リュカ(効率的な素数判定法テンプレート:Ill2を考案、テンプレート:Math では素数でない、テンプレート:Math では素数[1]テンプレート:Sfn)によってもたらされた。その後リュカ・テストは改良が加えられ、メルセンヌが予想した範囲にない3個が付け加えられた(テンプレート:Math1883年)、テンプレート:Math1911年)、テンプレート:Math1914年))。メルセンヌが予想した最後の数 テンプレート:Math について決着がついたのは1922年のことであり、 テンプレート:Math も合成数だった[1]テンプレート:Sfn

結局メルセンヌの4個の予想のうち2つは外れた。なおかつ、間に予想できなかった3つが含まれていたことを考えれば予想は正しかったとはいえないが、その後の歴史を見ても大きな原動力となり先駆的であったことに敬意を表し、素数であるメルセンヌ数をメルセンヌ素数というテンプレート:要出典

1903年10月、アメリカの数学者フランク・ネルソン・コールは実際の素因数分解を探し求め、ニューヨークで開かれたアメリカ数学会の会議で テンプレート:Math を黒板に計算し、テンプレート:Math と一致することを証明した。この間一言もしゃべらず、席に戻った後、少し間を置いて拍手が沸き起こったと伝えられているテンプレート:Sfn

1952年ラファエル・M・ロビンソンSWAC を利用して テンプレート:Math から テンプレート:Math まで、5つのメルセンヌ素数を発見[1]して以降、発見にはコンピュータが使用されており、コンピュータの進歩と共に新たなメルセンヌ素数が発見されつつある。

GIMPSによる発見

1996年、メルセンヌ素数を発見することを目的として作られた分散コンピューティングによるプロジェクト GIMPS が発足し、35番目のメルセンヌ素数 テンプレート:Math(1996年11月13日、Joel Armengaud[GIMPS 2])以来、GIMPSによるメルセンヌ素数の発見が続いている。

2008年8月23日、GIMPS は46番目の素数候補が、カリフォルニア大学ロサンゼルス校の数学部のコンピュータによって発見されたと報じたテンプレート:要出典。この素数は電子フロンティア財団が賞金を懸けた1000万桁以上の最初の素数となるため、GIMPS によって同校数学部に50,000ドル、慈善事業に25,000ドル、残りを前の6つのメルセンヌ素数の発見者へ分配することになった[GIMPS 3]

2008年9月6日、GIMPS は45番目の素数候補が、ドイツで発見されたと報じたテンプレート:要出典。これは、GIMPS によって発見された中では、発見順序と桁数が逆転した初めてのケースである。

素数判定法

知られている素数の中で最大のものが1876年以降ほぼ一貫してメルセンヌ素数である理由は、この判定法にあるテンプレート:要出典

リュカ・テスト

テンプレート:Mvarテンプレート:Math 型の素数のとき、テンプレート:Math, テンプレート:Math テンプレート:Mathテンプレート:Mathを定義すると、

テンプレート:For2

アルゴリズム

アルゴリズムは以下の擬似コードで表される。

入力: p: テンプレート:Math 型の素数であるテスト対象の整数
出力: PRIME:素数の場合, COMPOSIT:合成数の場合
Lucas_Test(p):
    var s = 3
    var MP = (1 << p) − 1
    for n in range(2, p):
        s = (s2 − 2) % MP
    if s == 0 then:
        return PRIME
    else:
        return COMPOSIT

リュカ–レーマー・テスト

テンプレート:Mvar が奇素数のとき、テンプレート:Math, テンプレート:Math テンプレート:Mathテンプレート:Math を定義すると、

テンプレート:For2 リュカ–レーマー・テストは二進計算機用のアルゴリズムに向いており、コンピュータによるメルセンヌ素数の発見には、この判定法が用いられてきた。例えば、テンプレート:Math テンプレート:Math より、テンプレート:Math テンプレート:Math が成り立つので、テンプレート:Mvar で割る割り算の代わりに、二進法で テンプレート:Mvar 桁のシフト演算と足し算だけで計算できる。

アルゴリズム

アルゴリズムは以下の擬似コードで表される。

入力: p:奇素数であるテスト対象の整数
出力: PRIME:素数の場合, COMPOSIT:合成数の場合
Lucas_Lehmer_Test(p):
    var s = 4
    var MP = (1 << p) − 1
    for n in range(2, p):
        s = (s2 − 2) % MP
    if s == 0 then:
        return PRIME
    else:
        return COMPOSIT
入力: p:奇素数であるテスト対象の整数
出力: PRIME:素数の場合, COMPOSIT:合成数の場合
Lucas_Lehmer_Test_FAST(p):
    var s = 4
    var m = 2p − 1
    for n in range(2, p):
        var s2 = s × s
        s = (s2 & m) + (s2 >> p)
        if s >= m then
            s = s − m
        s = s − 2
    if s == 0 then
        return PRIME
    else
        return COMPOSIT

メルセンヌ素数の一覧

2024年10月現在知られているメルセンヌ素数は下記の表の52個である。ただし、メルセンヌ素数としての番号が確定しているものは48番目までであり、これより大きいメルセンヌ素数については、間に未発見のメルセンヌ素数がないかどうか検証中である。

メルセンヌ素数は小さい順番から並べると

テンプレート:数列

となる。

# テンプレート:Mvar テンプレート:Mvar
桁数
発見日 発見者
1 2 1 紀元前500年?[12]
2 3 1 紀元前500年?[12]
3 5 2 紀元前275年?[12]
4 7 3 紀元前275年?[12]
5 13 4 1456年テンプレート:Refn 不明テンプレート:Refn
6 17 6 1603年[7] テンプレート:仮リンク
7 19 6 1603年[7] ピエトロ・カタルディ
8 31 10 1772年 レオンハルト・オイラー
9 61 19 1883年 テンプレート:仮リンク
10 89 27 1911年 テンプレート:仮リンク
11 107 33 1914年 R・E・パワーズ[13]
12 127 39 1876年 エドゥアール・リュカ
13 521 157 1952年1月30日 テンプレート:仮リンク, 使用:SWAC
14 607 183 1952年1月30日 ラファエル・M・ロビンソン
15 1,279 386 1952年6月25日 ラファエル・M・ロビンソン
16 2,203 664 1952年10月7日 ラファエル・M・ロビンソン
17 2,281 687 1952年10月9日 ラファエル・M・ロビンソン
18 3,217 969 1957年9月8日 ハンス・リーゼル, 使用:BESK
19 4,253 1,281 1961年11月3日 アレクサンダー・フルウィッツ, 使用:IBM 7090
20 4,423 1,332 1961年11月3日 アレクサンダー・フルウィッツ
21 9,689 2,917 1963年5月11日 ドナルド・ギリース, 使用:ILLIAC II
22 9,941 2,993 1963年5月16日 ドナルド・ギリース
23 11,213 3,376 1963年6月2日 ドナルド・ギリース
24 19,937 6,002 1971年3月4日 テンプレート:仮リンク, 使用:IBM 360/91
25 21,701 6,533 1978年10月30日 テンプレート:仮リンク & ローラ・ニッケル, 使用:CDC Cyber 174
26 23,209 6,987 1979年2月9日 ランドン・カート・ノル
27 44,497 13,395 1979年4月8日 ハリー・ネルソン & テンプレート:仮リンク
28 86,243 25,962 1982年9月25日 デイヴィッド・スローウィンスキー
29 110,503 33,265 1988年1月28日 ウォルター・コルキット & ルーク・ウェルシュ
30 132,049 39,751 1983年9月19日[12] デイヴィッド・スローウィンスキー
31 216,091 65,050 1985年9月1日[12] デイヴィッド・スローウィンスキー
32 756,839 227,832 1992年2月19日 デイヴィッド・スローウィンスキー & テンプレート:仮リンク 使用:Harwell Lab Cray-2[14]
33 859,433 258,716 1994年1月4日[15] デイヴィッド・スローウィンスキー & ポール・ゲイジ
34 1,257,787 378,632 1996年9月3日 デイヴィッド・スローウィンスキー & ポール・ゲイジ[16]
35 1,398,269 420,921 1996年11月13日 GIMPS / Joel Armengaud[GIMPS 2]
36 2,976,221 895,932 1997年8月24日 GIMPS / Gordon Spence[GIMPS 4]
37 3,021,377 909,526 1998年1月27日 GIMPS / Roland Clarkson[GIMPS 5]
38 6,972,593 2,098,960 1999年6月1日 GIMPS / Nayan Hajratwala[GIMPS 6]
39 13,466,917 4,053,946 2001年11月14日 GIMPS / Michael Cameron[GIMPS 7]
40 20,996,011 6,320,430 2003年11月17日 GIMPS / Michael Shafer[GIMPS 8]
41 24,036,583 7,235,733 2004年5月15日 GIMPS / Josh Findley[GIMPS 9]
42 25,964,951 7,816,230 2005年2月18日 GIMPS / Martin Nowak et al.[GIMPS 10]
43 30,402,457 9,152,052 2005年12月15日 GIMPS / テンプレート:仮リンク, Steven Boone[GIMPS 11]
44 32,582,657 9,808,358 2006年9月4日 GIMPS / カーティス・クーパー, Steven Boone[GIMPS 12]
45 37,156,667 11,185,272 2008年9月6日 GIMPS / Hans-Michael Elvenich[GIMPS 3]
46 42,643,801 12,837,064 2009年4月12日 GIMPS / Odd Magnar Strindmo
47 43,112,609 12,978,189 2008年8月23日 GIMPS / エドソン・スミス[GIMPS 3]
48 57,885,161 17,425,170 2013年1月25日 GIMPS / カーティス・クーパー[17][GIMPS 13]
テンプレート:Refn 74,207,281 22,338,618 2016年1月7日 GIMPS / カーティス・クーパー[GIMPS 14]
テンプレート:Refn 77,232,917 23,249,425 2017年12月26日 GIMPS / Jonathan Pace[GIMPS 15]
テンプレート:Refn 82,589,933 24,862,048 2018年12月7日 GIMPS / Patrick Laroche[GIMPS 16]
テンプレート:Refn 136,279,841 41,024,320 2024年10月21日 GIMPS / Luke Durant[GIMPS 1]

テンプレート:Reflist

未解決問題

  1. テンプレート:Mvar が素数
  2. テンプレート:Math または テンプレート:Math
  3. テンプレート:Math が素数

脚注

テンプレート:脚注ヘルプ

注釈

テンプレート:Notelist

出典

テンプレート:Reflist

GIMPS

参考文献

関連項目

外部リンク

テンプレート:素数の分類 テンプレート:Classes of natural numbers テンプレート:巨大数