100までの素数(mapと正規表現で)

http://ll.jus.or.jp/2006/blog/doukaku1

遅ればせながら参戦

for my $i (2..100) {
    my $n = join ",",map{$i%$_} 2..$i-1;
    if($n !~ /^0\,/ && $n !~ /\,0/){
          print "$i \n";
    }
}

mapと正規表現で作ってみました。
普通ですかね...


[追記]
何も考えずに作ったところにsfujiwaraさんからTB

before_incl { sqrt $n <= $_ }     # $n の平方根以下のものだけ抽出して (3)

この処理に???となってしまった。
素数

もし N が素数x と素数y とに割り切れる(つまり N=xy)とすると、x と y のいずれかは N の平方根よりも小さくなければならない。もし x と y の両方ともが N の平方根よりも大きいとすると、xy(=N)は N よりも大きいということになり、これは不条理である。したがって、もし N が素数でないとすると、N は「N の平方根よりも小さい素数」で割り切れる。

なるほど、確かに毎回N%(N-1)を全部調べるのはアホらしい。
あまりにも素朴な頭でした、つーか昔勉強したような...。