10/22/2015

素数はどうやって求めるのだろう?

ということを夜中に目覚めて考えた。
たぶん気のきいた方法があるのだろう。
検索すると出てくるかも。
でも検索したら面白くない。

最もばかばかしい方法はなんだろう?
あるNに対して、2からN/2まで計算して割り切れることがなかったら素数だろうか。
ただし最下位が2,4,6,5,8,0は除く。
1桁の3,5,7は除外する。
時間はかかるけれどそれが良さそうだ。

次に問題になるのは、どうやって計算するかだけれど、
昔ならN-BASICとかで簡単にプログラムできたけれど、Windowsには付属していない。
無料のC#をインストールして・・・という方法もあるが、始めるまでが面倒臭そうだ。
そういえばC#はDelphiに似ているみたいだからとっつきやすいかも。

今のままでなんとかできないだろうか。
EXCELはどうだろう?
ちょっと考えてみた。
できないことはなさそうだけれど、なんか面倒くさそうだ。

やっぱりこういうのはBASICだと思って探したら、
MicrosoftからSmall BASICというのが無料で配布されているのがわかった。
これは子供向けと書いてあったけれど、内容は十分普通に使えそうだ。
早速インストールしてみた。
なかなかいいかもしれない。
少なくともPC-9801のエミュレータでBASICを使うよりもスマートだ。

ちょっとプログラムを作ってみよう。

追記:
しかしもっと気の利いた方法は無いだろうか?
この方法では数が大きくなると恐ろしく計算時間がかかる。
ボゴソートとかボゾソートに匹敵しそうだ。
もう少し考えてみよう。