素数について

素数とは、1とそれ自身以外に約数を持たない整数のことである。これは小学校で習うので、 誰でも知っていることでしょう。2,3,5,7,11,・・・ってやつね。この辺の 小さい数字では別に不思議さはないんだけど、この素数ってやつがどうやら無限にあるらしい というのはオドロキ。そして限りなく大きな素数を求める試みとともに、整数論というのも 発展してきたんだって。なるほどねえ。

昔のコンピュータがなかった時代には、大きな数を扱うのは大変な苦労を伴う作業だった。 しかし今は小さくて速い計算機が普及しているから、大きな素数を探求するのもアマチュア からプロまでたくさんの人がやっている。スーパーコンピュータがなくても、プログラムの 工夫によって計算の効率をあげて、あとは長時間動かしっぱなしにすればいいわけだね。実際、

2の3021377乗引く1

という素数を発見した人は、ペンティアム100MHzのパソコンを15日間も計算しっぱなし にしてそれを確かめたそうだ。う〜ん私は一台しかパソコンをもってないし、それを15日間も 素数のためだけに使うことはできないけど。まあそれ以前に、そんな大きな数値を扱える プログラムをまだ組めないな。2の3021377乗引く1っていうと、10の対数をとって考えると およそ91万桁になるからね。

う〜んなんだよそれ、91万桁って。πの値が億桁の単位まで求められてるって言っても、 91万桁っていうのはやっぱり相当すごいぞ。πは所詮πだから、どんなに精度よく求めても 3.1416を超えることはないしな。でも91万桁の整数ってメチャでかいよ。仏教に無量大数って 単位があったけど、2の3021377乗引く1って、無量大数の何倍?

素数判定の考え方としては、一番簡単なのはその数を順番に割ってみることだ。例えば11が素数 かどうか判定するには、2から10までの数で順番に割ってみて、ひとつも割り切れる数がないので 素数だと言うことができる。しかし小さい数ならこれでもいいが、大きい数を判定するとなると、 この方法では孫の孫の孫のそのまた孫の代まで引き続きやらせたとしても計算が終わらないほど、 膨大な時間がかかってしまう。だからこの単純な方法では、現代研究されているような大きな 素数を判定することは原理的には可能でも事実上不可能。その代替案として、素数を判定するにも 色々な方法が考案されているそうだ。高速フーリエ変換とか、あれやこれ・・・。そのあたりに ついて詳しく知りたい場合は、検索エンジンで「素数」とか「メルセンヌ数」と入力して検索 するとそれ系のページが出るでしょう。

そういうことで、素数はヒッジョーに奥が深いぞ。私も計算機プログラムを組みながら勉強して みることにした。そこで最後に、私が自分のプログラムで判定したいくつかの小さな素数を紹介 しておこう。素数って、なんか直感的に7と9を組み合わせるとできそうな感じがしない?別に 理論的な根拠は全然ないけど、素人の特権、直感的で無責任なゴリ押しということで、7と9で 作った数を順番に見ていこう。今使っているのは最初のバージョンで、全然大きな数値を扱えない が、これから勉強してプログラムを改良していく予定。それが進みしだいこのページでも紹介 していきたい。
7 <素数>
79 <素数>
709 <素数>
7009 <43*163>
70009 <素数>
700009 <17*41177>
7000009 <素数>
70000009 <19*3684211>
700000009 <23*30434783>
おおっ、こんなテキトーな選び方でも結構素数が見つかったね。こりゃ楽しいわ、ほんと。

素数表を手に入れよう!

1から1000000までの素数表 ダウンロード
zip形式の圧縮ファイルで サイズは195KB。WinZipなどの解凍ソフトで解凍すると、テキスト形式の素数表になります。
この素数表をみながら、身の周りのいろいろな素数を探しましょう。今年の1999って、これがまた 素数だったりするんだよね。

*******

New!!  素数度について