Алгоритм, позволяющий получать простые числа, отличается по быстродействию
от приведенного ниже алгоритма с применением Quantum::Superpositions:
$N = 1000000;
@L = (1) x $N;
$L[0] = 0; $L[1] = 0;
$start = 2;
$t0 = time;
while($start<$N) {
if($L[$start]==0) { $start++; next; }
for($i=$start*2;$i<$N;$i+=$start) { $L[$i] = 0; }
$start++;
}
print "time: ".(time-$t0)."\n";
for($i=0;$i<$N;$i++) {
print $i." " if($L[$i]==1);
}
Программа написана David A. Mzareulyan from http://www.scientific.ru