$geister = 999 ** 6; printf "%.4g", $geister; my @sieb=(0..$geister); # sieb des erestothenes for my $i (2..($#sieb/2)){ next unless $sieb[$i]; $sieb[$i*$_] = 0 for 2..int $#sieb/$i; } for my $prim (2..$geister) { if ($sieb[$prim]) { my $a; until ($geister % $prim){ $a++; $geister %= $prim; } print "$prim:$a " if $a; } }