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)を全部調べるのはアホらしい。
あまりにも素朴な頭でした、つーか昔勉強したような...。