#!/usr/bin/perl
use CGI qw(:standard -nph);
$|=1;
print "HTTP/1.0 200 OK\n";
print "Pragma: no-cache\n";
print "Content-type: text/html\n\n";
print "
Prime Number Generator\n";
$limit =1000000;
$limitSqrt = int(sqrt($limit));
print "Prime Numbers up to $limit
\n";
# $prime{$num} = 3 $num is prime
# $prime{$num} = undef $num not known at this point
# $prime{$num} = 1 $num is not prime
for($num=2; $num <= $limitSqrt; ++$num)
{
$sum = $num;
if (!$prime{$num}) #this number has not been marked 'not prime' so it must be prime
{
#$prime{$num} = 3;
print "$num\n"
}
while ($sum < $limit) #mark all non primes up to limit
{
$sum = $sum + $num;
$prime{$sum} = 1; #not prime
}
}
for($num=$limitSqrt; $num < $limit; ++$num)
{
#if ((!$prime{$num}) or ($prime{$num} == 3))
if (!$prime{$num})
{
#$prime{$num} = 3;
print "$num\n"
}
else {
#$prime{$num} = 1
}
}
=pod
for($num=2; $num < $limit; ++$num)
{
if ($prime{$num} == 3) {print "$num\n"}
}
=cut
1;