わ た し の 素 数
あなただけの素数を探そう

最終更新日:2004-12-29 (他の人と協力して一緒に素数を探したいに、マーク付きファイル添付形式に改造したスクリプト公開)
 素数ってそもそも何? - 素数の探し方 - 素数を発見したら - データベースから他の人の探した素数を検索 - 他の人と協力して一緒に素数を探したい - トラブル - ふるい落として高速化 - 47*2^n+1 Searchに参加するには - このページを作るにあたって

 「史上最大の素数発見」というニュースが、新聞などのマスコミに載っていました
 こういった素数の探索は、天才数学者だけが行うものなのでしょうか?
 いえいえ、実は誰でも探せるものなのです。

 こういった発見は、スーパーコンピュータか、それに匹敵する数万人参加の分散コンピューティングでないと見つけられないのでしょうか?

 史上最大となる素数は、大量の高速なコンピュータが無いと難しいです。
 しかし数千桁の素数なら、個人でも10分足らずで探せてしまうのです。
 世界にまだ知られていない素数を、こんなに簡単に見つけることが出来るのです。

 このページは、個人が手軽に探せる、あなただけの素数の探し方を解説するページです。

 誕生日や結婚記念日...そんなあなただけの特別な数字を絡めて、あなただけの素数を探し求めてみませんか?


素数ってそもそも何?
 1と、その数字以外の数では、割り切れない数のことです。
 あ、数といっても、自然数(正の整数)でして、小数点やマイナスの数字は使いませんよ。

 例えば、5とか7とか11とか31が素数ですね。
 逆に4(2×2)とか,10(2×5)とか,9(3×3)とかは割り切れるから、素数ではありません。

  ・ ウィキペディア:素数 - みんなで作るフリーの百科事典「ウィキペディア」の解説
  ・ 素数大好き - 平之内俊郎さんによる全国の素数愛好家の為のペイジ
  ・ 史上最大素数Top20 - 素数の種類別リスト - Top5000以上(全リスト)


素数の探し方
 proth.exeというソフトを使って実際に探してみましょう。
 Windows版はこちらからダウンロードできます。
 もちろん無料で利用できるソフトウェアです。

 proth.exeはProthの定理というものを使って、素数を判定するプログラムです。

 ★proth.exeが探せる素数は3タイプ
   ・ k^n+1 (Generalized Fermat数)
   ・ k*2^n+1
   ・ k*2^n-1

 「k.2」となっているのは、「k*2」と同じ意味です。
 「^」という記号は指数を意味していて、普通印刷物などでは
Kn+1といった形で表記されているのが一般的です。 kに2を,nに3を入れると、23+1 = (2*2*2)+1 = 9となります。

今回は、k.2^n+1で素数を探してみましょう。
 Form → k.2^n+1で、このような入力画面になります。
 ここに好きな数字を入れてみましょう。

 今回は...そうですね、1990年にフィールズ賞を受賞した、森 重文教授の生年月日(1951年2月23日)をkに入れて、kはそのままで、指数nを2から5000まで変えていく形で探してみましょうか。
上のように数字を入れてStartボタンをクリックします。


その結果がこれです。
 皆さんのパソコンでは何分かかったでしょう?

 私のCeleron1400MHzでは、探索にかかった時間は24秒でした。

 今回見つけられた素数で最大のものは、19510223*2^4621+1(1399桁)。
 素数のデータベースで検索すると46000位あたりに位置します。(2004年1月29日現在。実際は5000位以下の素数は特別な形でないと登録を受け付けないため、本当に順位が競われるのは5000位以上から。)

 こうやって、あなただけの素数を発見することができました。

 画面で確認するだけでなく、Proth.exeの存在するフォルダと同じ場所にできるProth.logというテキストファイルを見ることで、計算結果全てを確認することができます。


素数を発見したら
 turboさんが日付素数ランキングを開始されています。
 素数を構成する係数、指数、底などに日付が含まれている場合、日付素数ランキングに登録し、ランキングを楽しむことも可能です。

 5000位以内にランクするような大きな素数を発見した場合、The Prime Pagesのデータベースに登録し素数Top5000ランキングに参戦するという道もあります。
 当方では、そこまではまだ調べられておらず、現在調査中です。


データベースから他の人の探した素数を検索
 あなたの発見した素数が、既に他の人に発見されていないか検索してみましょう。
 日本語でデータベース検索:The Prime Pagesの歩き方

 [Book] 素数大百科(共立出版 Chris K.Caldwell編著 SOJIN編訳) - Caldwell氏制作の素数情報サイトThe Prime Pagesを編纂・翻訳。様々な形の素数の種類の解説から、Proth.exeやNewPGenについての解説や主な形式の素数Top20なども。


他の人と協力して一緒に素数を探したい
 GIMPS素数探索プロジェクトのような本格的な分散コンピューティングシステムを構築しての素数探しは、サーバ・クライアントシステムの開発,サーバの管理運営が必要と、なかなか困難です。ちなみにGIMPSはEntropia社が運営に協力しています。

 そこで、協力者を募り、連絡を取り合える掲示板を設置しました。
 数式と探す範囲を書いてみて下さい。(例:19510223*2^n+1で素数探してます。nの値が100000から120000まで探すの手伝って

 みんなで協力しながら探せる状況にしたいです。

 ・ 素数探索連携掲示板
 添付ファイルにも対応しているので、数式だけでなく、NewPGenが生成したファイル(第二段階で解説)を添付することも可能です。
 Kent WebさんのJoyful Noteスクリプトを使わせて頂きました。


 現在では、「予約の完了」・「計算の終了」などのマークに対応した、改造したスクリプトを使っています。
 もし、「自分たちだけでも独自に探したい」といった場合には、こちらのスクリプトを利用してみてはいかがでしょうか。
  ・Kent Web CGIスクリプト利用規程に沿います。
  ・マーク付きファイル添付掲示板 改造スクリプトのダウンロード (2004-12-25)


トラブル
・Proth.exeで素数探索をしていたら、パソコンの動作が遅くなった
 Option → Priorityが、Idle以外になっていませんか?

 他のソフトウェアがCPUパワーを使用していない場合、Priorityを変更しても意味はほとんどありません。Idle設定にしておきましょう。



ふるい落として高速化
 proth.exeは指定された数を全て素数判定するのではなく、ある程度proth.exe自身が、ふるい落とした上で探索するそうです。

 proth.exeとは違う別のソフトを使って、もっと「ふるい落とし作業」を行ってからproth.exeで素数判定すると、高速化できます。

 次はこれに挑戦してみましょう。

 ・ わ た し の 素 数 第二段階:計算候補をふるい落として高速化


このページを作るにあたって....
 このページを作るにあたって、Proth.exeの日本語での詳細な情報の提供など、野原さんからの多大なご支援・ご協力を頂きました。
 本当にありがとうございました。


 情報のご提供,このページに間違い等ありましたらMat(mat-t@mh1.117.ne.jp)掲示板までご指摘頂ければありがたいです。

Top - わ た し の 素 数 第二段階:計算候補をふるい落として高速化 - The Prime Pagesの歩き方 - 素数探索連携掲示板 - 分散コンピューティングの紹介 - GIMPS - 世界最大の素数を求め続ける
Mat (mat-t@mh1.117.ne.jp)