ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE 素数を検索するプログラム /kobachi (02/02/13(Wed) 02:24) [449]


親記事 / 返信無し
NO.449  素数を検索するプログラム
□投稿者/ kobachi -(2002/02/13(Wed) 02:24:54)
□U R L/ http://plaza.across.or.jp/~kobachi/
{---プログラム掲示板投稿フォーム---
【ソフト名】素数検索プログラム (バージョン 1.00)
【作 成 者】kobachi (連絡先:kobachi@po4.across.or.jp)
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.00
【転  件】可(転載条件:ご自由に)
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】無
【コメント】指定された数までに存在する素数を求めます。素数とは、1とその数そのもの以外では割り切れない数のことです。例えば4は、4以外の数である2で割り切れてしまうので、素数ではありません。

まったく、味も素っ気もない地味なプログラムです。

C++で作成した同様のプログラムが私のサイト(http://plaza.across.or.jp/~kobachi/)にありますので、そちらと実行速度等、比べてみるのも良いかもしれません。(別途コンパイル作業が必要です。)
---投稿フォームここまで---}



母艦の、タイトルは、「指定値まで素数を検索」。
母艦の、高さは、300。母艦の、幅は、500。
その、リサイズは、オフ。
母艦を、中央へ移動。
表示部を、メモとして、作成。
その、サイズは、(0,0,(母艦の、幅),(母艦の、高さ))。
その、フォント書体は、『MS ゴシック』。
その、フォントサイズは、9。
その、フォント色は、灰色。
その、背景色は、黒色。
その、スクロールバーは、縦。
その、編集は、オフ。
その、キー押した時は、入力。
母艦浮上。


表示バッファは、「」。

*入力
' 初期変数の定義
非素数フラグ=オフ。検索完了値=3。素数#1=1。素数#2=2。素数#3=3。
「終了数値:(3以上、104727以下)」と、尋ねる。
もし、(それ=「」)かつ、(表示バッファ<>「」)なら、戻る。' 初回はキャンセルできないよ
検索終了値=それ。
検索終了値が、数字か。
もし、それが、いいえなら、入力へ、飛ぶ。
もし、検索終了値が、3以下なら、検索終了値は、3。
もし、検索終了値が、104727以上なら、入力へ、飛ぶ。
表示部の、テキストは、「検索中です。中止するときは、何かキーを押してください。」。
表示部の、キー押した時は、結果表示。
開始時刻は、今。
表示バッファは、「」。


' 素数辞書の作成
xを、4から、検索終了値まで、繰り返す
(
iを、2から、検索完了値まで、繰り返す
(
' x が素数で割り切れたら、x は素数ではない。したがって、非素数フラグをオンにする。
もし、(x%素数#i)が、0ならば、非素数フラグは、オン。
)

' 非素数フラグがオフなら、x は素数なので、素数辞書に追加。
もし、非素数フラグが、オフなら、
(
検索完了値=検索完了値+1。
素数#検索完了値=x。
)

' そして、次の数値のチェックの為に、非素数フラグ を再初期化。
非素数フラグ=オフ;

' キャンセル受付時間を確保
0.001秒、待つ。
)


*結果表示
' 表示用に素数一覧を整形する
iを、1から、検索完了値まで、繰り返す
(
もし、iが、検索完了値なら、表示バッファ=表示バッファ&素数#i。
でなければ、
(
もし、(i%10)が、0ならば、表示バッファ=表示バッファ&素数#i&「\n」。
でなければ、表示バッファ=表示バッファ&素数#i&「\t」。
)
)
終了時刻は、今。
終了時刻と、開始時刻の、秒差。経過時間は、それ。
表示バッファ=表示バッファ&「\n\n{x} 以下の {検索完了値} 個の素数を検索するのに、{経過時間} 秒かかりました。
もう一度検索するときは、何かキーを押してください。」。


' 表示する
表示部の、テキストは、表示バッファ。
表示部の、キー押した時は、入力。
待機。



- Child Tree -