http://ll.jus.or.jp/2006/blog/doukaku1/
http://d.hatena.ne.jp/t-akihito/20060625/1151227410
LL Ring のチケット発売今日からだ。買ってこなくちゃ。
List::MoreUtils から all と before_incl を使って、リスト操作っぽく書いてみた。List::MoreUtils は標準モジュールじゃないけどね。
#!/usr/bin/perl use strict; use List::MoreUtils qw(:all); my $max = shift || 100; my @primes = (2); # 最初の素数は 2 (0) for my $n (3..$max){ # 3 〜 $max の全ての整数に付いて (1) push @primes, $n # 素数列に追加 (5) if all { $n % $_ } # 剰余がすべて真(!=0)なら (4) before_incl { sqrt $n <= $_ } # $n の平方根以下のものだけ抽出して (3) @primes; # $n 以下の素数から (2) } print "@primes\n";
(0)→(5)の順番に読む。(2)〜(4)が逆順になるのが読みづらいのだけど、これって Perl 6 だとどうにかできるんだったっけ……