素数とは、1とそれ自身以外に約数を持たない整数のことである。これは小学校で習うので、 誰でも知っていることでしょう。2,3,5,7,11,・・・ってやつね。この辺の 小さい数字では別に不思議さはないんだけど、この素数ってやつがどうやら無限にあるらしい というのはオドロキ。そして限りなく大きな素数を求める試みとともに、整数論というのも 発展してきたんだって。なるほどねえ。
昔のコンピュータがなかった時代には、大きな数を扱うのは大変な苦労を伴う作業だった。
しかし今は小さくて速い計算機が普及しているから、大きな素数を探求するのもアマチュア
からプロまでたくさんの人がやっている。スーパーコンピュータがなくても、プログラムの
工夫によって計算の効率をあげて、あとは長時間動かしっぱなしにすればいいわけだね。実際、
う〜んなんだよそれ、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>
おおっ、こんなテキトーな選び方でも結構素数が見つかったね。こりゃ楽しいわ、ほんと。
*******