http://qs321.pair.com?node_id=1125458


in reply to Re^5: Number functions.. primes (ugly code runs faster)
in thread Number functions I have lying around

Sounds like a challenge. I took the dj_string routine on rosettacode and simplified it some.

sub sieve_s2 { my ($n, $i, $s, $d, @primes) = (shift, 7); my $sieve = '110010101110101110101110111110' . '101111101110101110101110111110' x ($n/30); for ($sieve) { until (($s = $i*$i) > $n) { $d = 2*$i; do { substr($_, $s, 1, '1') } until ($s += $d) > $n; 1 while substr($_, $i += 2, 1); } $_ = substr($_, 1, $n); push @primes, pos while m/0/gogo; return @primes; } }
Pure perl isn't up to warp-speed, understandably.