use strict; use warnings; use Time::HiRes; my $startTime = [Time::HiRes::gettimeofday ()]; my $toFind = 201; my @primes; my $scan = 3; outer: while (@primes < $toFind - 1) { my $root = sqrt $scan; for (@primes) { next outer if $scan % $_ == 0; last if $_ >= $root; } push @primes, $scan; } continue { $scan += 2; # Don't need to check even number } print "Found $toFind primes in " . Time::HiRes::tv_interval ($startTime) . " seconds\n"; print "2 "; print "@primes[$_*10..$_*10+9]\n" for 0..($toFind / 10)-1;