●素数判定/出力

「●素数判定/出力」の編集履歴(バックアップ)一覧に戻る

●素数判定/出力 - (2008/10/27 (月) 18:41:04) のソース

*情報
作者名:五十六
引用元:なし

*概要
数値Sが素数かどうか判定したり、数値Sまでの素数配列を出力したりします。

*サンプルプログラム
 5の素数判定。
 もし、それ=1ならば、「5は素数です」と言う。
 違えば、「5は素数ではありません」と言う。
   
 1000まで素数出力して言う。

*//本体
 ●素数判定(Sを|Sの)
   もし、S<2ならば、0で戻る。
   Aとは数値=0。Bとは数値=0。合計とは数値=0。判定配列とは配列=空。
   Aを2からSまで繰り返す、判定配列[A]=1。
   Aを2からFLOOR(SQRT(S))まで繰り返す
     もし、判定配列[A]≠「1」ならば、続ける。
     B=A×2。
     (B<(S+1))の間、判定配列[B]=0。B=B+A。
   判定配列[S]で戻る。
 
 ●素数出力(Sの|Sまで)
   もし、S<2ならば、空で戻る。
   Aとは数値=0。Bとは数値=0。合計とは数値=0。判定配列とは配列=空。
   Aを2からSまで繰り返す、判定配列[A]=1。
   Aを2からFLOOR(SQRT(S))まで繰り返す
     もし、判定配列[A]≠「1」ならば、続ける。
     B=A×2。
     (B<(S+1))の間、判定配列[B]=0。B=B+A。
   素数配列とは配列=空。
   判定配列で反復、もし、対象=「1」ならば、素数配列に(回数-1)を配列追加。
   素数配列で戻る。

----
- エラトステネスのふるいですね。繰り返しはFLOOR(SQRT(S))まででOKと思います。  -- SWinX  (2008-10-23 13:59:09)
- おおー!ありがとうございますー!修正しましたー!  -- 管理人  (2008-10-23 21:31:44)
- 反映ありがとうです。おせっかいついでに:変数「合計」って使ってる?:判定配列の0/1の意味を逆にすると初期化いらないかも:「S+1未満」と「S以下」対象が整数なら同じ意味だが前者は足し算分遅くなる?  -- SWinX  (2008-10-27 18:41:04)
#comment()

----
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。