#! /usr/local/bin/perl # -------------------------------------------------- # お決まりの例題。100 番目の素数を求める # -------------------------------------------------- $num = 2; # 2 から始める $cnt = 1; # 2 は素数なのでカウントしとく push(@sos, $num); # 2 を素数のリスト(sos)に入れる while (1) { $num++; # つぎの数を調べる undef $FLAG; # 「ラクダ本」p.298 のテク for($[ .. $#sos) { $FLAG = $_, last if ($num % $sos[$_] == 0); } if(! defined($FLAG)) { # どの素数でも割り切れないなら $cnt++; # カウントして、 push(@sos, $num); # その数を素数リストに加える # print "$cnt --> $num\n"; last if 100 <= $cnt; # 100 番目の素数ならループを抜ける } # 素数だった場合の処置ここまで } # そして最後に結果の表示 print "100 番目の素数は $num です.\n";