#! /usr/bin/perl
use warnings;
use strict;
my $max = shift;
my @primes = (2);
my $i = 3;
while ($i <= $max) {
my $sqrt = sqrt $i;
for my $num (@primes) {
last if ($i % $num == 0);
push @primes, $i and last if $num > $sqrt;
}
$i += 2;
}
print "1, @primes";
####
real 0m37.682s
user 0m37.296s
sys 0m0.015s
####
real 0m4.035s
user 0m3.531s
sys 0m0.062s