Thread Primzahlen finden: wie würdet ihr es machen ? (16 answers)
Opened by Matze at 2006-05-15 14:13

Taulmarill
 2006-05-15 16:26
#66106 #66106
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
der regex wird natürlich für grössere zahlen übelst langsam, dafür kann er aber auch jede zahl testen, ohne die vorherigen primzahlen zu finden. bei dem ansatz von matze würde ich das modulo nur bis zur quadratwurzel der zu prüfenden zahl testen, das spart noch einmal einiges an rechenzeit:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use strict;

my $max = $ARGV[0] || 100;
my @primes = ( 2 );
for my $num ( 3 .. $max ) {
my $sqrt = sqrt $num;
for my $prime ( @primes ) {
last unless $num % $prime;
push @primes, $num and last if $prime > $sqrt;
}
}

print join ", ", @primes;
print "\n";
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B

View full thread Primzahlen finden: wie würdet ihr es machen ?