素数表                     戻る     

 素数とは、1以外の数で1と自分自身しか約数がない整数のことをいう。

例えば、2、3、5、7、・・・などが素数である。

素数が無限個あることは、紀元前300年頃、ユークリッドにより、示されている。

 もし、素数が有限個とすると、最大の素数Nが存在する。このとき、2からNまでの全ての
素数の積に 1 を加えた数Mを作ると、MはNより大きい整数で、MはN以下の全ての素数
では割り切れない。ということは、Mは素数かまたはNより大きい素数で割り切れる。いず
れにしても、これは、Nが最大の素数であることに矛盾する。よって、素数は無限個ある。

                                           (ユークリッド原論)

 素数が無限個あることが分かったので、素数全てを求めるという野望は放棄せざるをえ
ない。そのかわり、ある数が素数かどうかを能率的に判定する方法や素数がどんなふうに
出現するのかなど、興味の種は尽きない。

 与えられた整数 n が素数かどうかは、2、3、5、7、...と n より小さい素数でどんどん
割っていき、割り切れなければ、素数である。

 どこまで割っていくのかというと、n の平方根以下で十分である。

素数の抽出には、エラトステネスのふるい法が有名である。

 整数 n より大きくない素数の個数を π(n) とする。

n が十分大きいとき、π(n) の値は、n÷ln(n) の値にほぼ等しい
                                      (但し、ln(n) は自然対数)

ということを、数学者ガウスは、1792年15歳のとき発見した。

 この予想は、1896年アダマールとド・ラ・ヴァレー・プサンにより、独立に証明された。

素数定理といわれるこの定理は、数学の中で最も美しい定理の1つといわれている。

 この定理により、与えられた任意の整数 n をこえない素数の個数が大体予知できるよう
になった。

 次に、1000以下の素数表をあげる。

2 79 191 311 439 577 709 857
3 83 193 313 443 587 719 859
5 89 197 317 449 593 727 863
7 97 199 331 457 599 733 877
11 101 211 337 461 601 739 881
13 103 223 347 463 607 743 883
17 107 227 349 467 613 751 887
19 109 229 353 479 617 757 907
23 113 233 359 487 619 761 911
29 127 239 367 491 631 769 919
31 131 241 373 499 641 773 929
37 137 251 379 503 643 787 937
41 139 257 383 509 647 797 941
43 149 263 389 521 653 809 947
47 151 269 397 523 659 811 953
53 157 271 401 541 661 821 967
59 163 277 409 547 673 823 971
61 167 281 419 557 677 827 977
67 173 283 421 563 683 829 983
71 179 293 431 569 691 839 991
73 181 307 433 571 701 853 997

 1000以下の素数は、全部で168個ある。素数定理に当てはめてみれば、144.8なの
で、ほぼ近い。ガウスの偉大さが実感できる。

 因みに、2000以下は、303個(263.1)、3000以下は、430個(374.7)、5000以
下は、669個(482.3)、10000個以下は1229個(1085.7)の素数がある。
                                  ( )内は、素数定理による数値。

(参考文献:M.ラインズ著 片山孝次 訳 「数 その意外な表情」(岩波書店)
        和田秀男著 「数の世界 整数論への道」(岩波書店)
        問谷 力・森本清吾著 「袖珍 数学公式要覧」(山海堂出版部))

(追記) 平成15年5月18日、矢倉さんという方から、素数の個数について、誤りのご指
     摘をいただいた。検証の結果、ご指摘の通りであるので、本文を訂正した。
      矢倉さんに感謝いたします。

     2〜9999 までの素数表については、次のHPに一覧がある。
       http://www.kde.gr.jp/~ichi/qt/primes.html

     また、次のHPでは、素数表を指定した範囲内で作成することができる。(矢倉さん)
       http://www.aiestate.com/prime.php
     (上記HPは、矢倉さんが全く実験的に作っただけのページで、遠からず削除するこ
      とになるとのことである。そのような事情から、当HPからのリンクを解除させてい
      ただきました。― 2003.5.20)

     上記HPで、試しに、100万以下の素数の個数を計算してみた。
     結果は、78498個で、約554.26秒(9分強)要した。思わず感動してしまった!


   (追記) 平成20年3月20日付け

       当HPの掲示板「出会いの泉」に、zk43さんが、ある数までの素数を求めるた
      めの、Excel の VBA を利用したプログラムを紹介された。上記で、9分強かか
      ったという一文を読まれての書き込みである。zk43さんに感謝いたします。

       n の平方根以下の数で割り算するというアイデアを利用したVBAである。

         Sub 素数の個数()
         p = 0
         For Num = 2 To 1000000
            a = Int(Num ^ 0.5)
           c = 0
          For k = 2 To a
           If Num Mod k = 0 Then
             c = 1
             Exit For
           End If
          Next k
           If c = 0 Then p = p + 1
          Next Num
         Range("A1") = p
         End Sub


       Visual Basic Editor を起動させて、標準モジュールに上記を記述し、マク
      ロを実行させればよい。

       私のパソコン(Pentium(R) 4 CPU 2.93GHz)で、早速、Excelに上記のVBAを
      覚え込ませて実行してみたところ、21秒!で78498個と出ました。速かったで
      すね。(この結果は、らすかるさんのHPにある表の数字と一致している。)

       また、当HPがいつもお世話になっている、らすかるさんは、今年の1月に、素
      数の個数を求めるプログラムの高速化に挑戦されたとのことである。

       プログラム言語が、C とアセンプで、アルゴリズムも違うのでVBAのプログラム
      とは比較できないが、実行時間は下記のようであったとのことである。
                                       (CPUは Core2 2.4GHz)
         1000万まで: 0.04秒 ・・・・ 0.04秒くらい!(映画のフィルム1コマ分の時間
         1億まで: 0.16秒 ・・・・ 0.2秒くらい!(人間の反応速度
         10億まで: 1.51秒 ・・・・ 2秒くらい!(光が地球から月まで進む時間
         100億まで: 16.3秒 ・・・・ 15秒くらい!(小学5年女子100m記録
         1000億まで: 180秒 ・・・・ 3分くらい!(小学5年男子1000m記録
         1兆まで: 34分 ・・・・ 30分くらい!(大学生10000m記録
         10兆まで: 428分 ・・・・ 7時間くらい!(ウルトラマラソン100km記録
         100兆まで: 108時間3分 ・・・・ 4日半くらい!

      (コメント) 私のパソコンで、21秒かかった計算も、らすかるさんのアルゴリズム
            にかかると、ほんの一瞬で求まってしまうような...予感。いや〜、高
            速すぎますね!


(追々記) 2003年12月3日、過去最大の素数が発見された(検証により、確認)。

       632万430桁の数で、40番目のメルセンヌ数だという。

      ミシガン州立大学の大学院生マイケル・シェイファー(Michael Shafer)さんが
     中心となって、世界中の200万台を越えるパソコンを結んで、2年がかりの計算で
     発見されたとのことである。

       (現在知られている最大の素数については、「完全数」を参照)