「すぐわかるPerl」3.9 二重ループ
2~100の間にある素数の数を表示する。
#! c:\perl\bin\perl.exe
# prime100 -- 100以下の素数をリストアップする$n = 2;
while ($n <=100){
$div = 2;
$prime = 1;while($div <= ($n / 2)){
if ($n % $div ==0){
$prime = 0;
last;
}++$div;
}if($prime){
print "$n\n";
}++$n;
}
whileのなかにwhileを入れ子(ネスト)することで条件文を分岐させる。
・$nは調査対象の数であり、2から初めて100までカウントアップ
・$divは割る数であると同時に、内部のループのループ関数としても利用する。n/2までカウントアップ。
・$nが$divで割り切れたら($n % $div == 0)lastでループを抜ける
・ループを抜けた際、それが割り切れたからか、$divが$n/2を超えたからかを判定するため、$primeという変数を設定。
primeが1だったら素数。primeが0だったら素数ではない。
| 固定リンク
「Perl」カテゴリの記事
- 「すぐわかるPerl」 8.10 ディレクトリのリカーシブ処理(その2)(2009.02.24)
- 「すぐわかるPerl」 8.10 ディレクトリのリカーシブ処理(その1)(2009.02.23)
- 「すぐわかるPerl」 7.6 マッチした文字列と、その前後の文字列を扱う変数(2008.06.17)
- 「すぐわかるPerl」 8.9 コマンドの入出力に入出力を切り替える(2008.11.12)
- 「すぐわかるPerl」 8.8 標準入出力以外のファイルの制御(2008.10.08)









コメント