Brute-Force-Methode(Auflister) Turbo Pascal
aus Paswiki Turbo Pascal, der freien Wissensdatenbank
Beschreibung
Dieses Programm listet im angegebenen Wertebereich alle Primzahlen auf !
Es funktioniert mit Hilfe der so genannten Brute-Force-Methode.
Für den Wertebereich von 0 bis 1 Mio werden 4 Sek. benötigt (bei 1,4 GHz Prozessor)!
Programm
{$N+}
program primzahlen; {von Fabian Reuter 27. Febr. 06}
uses crt,dos,Strings;
var n,zahl,treffer,count:longint;
time,time2:real;
h1,m1,s1,s1001,h2,m2,s3,s1002:word;
anzahl,vonanzahl: longint;
begin
writeln('Primzahlen-Auflister');
writeln('ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ');
writeln('Von welcher Zahl an wollen Sie die Primzahlen haben ?');
readln(vonanzahl);
writeln('und bis zu welcher Zahl ?');
writeln;
readln(anzahl);
if vonanzahl<3 then vonanzahl:=2;
gettime(h1,m1,s1,s1001);
time:=60*m1+s1+((1/1000)*s1001);
for zahl:=vonanzahl to anzahl do
begin
treffer:=0;
if (not odd(zahl)) and (zahl>2) or (frac(sqrt(zahl))=0) then begin treffer:=treffer+3;end
else begin
for n:=3 to round(sqrt(zahl)) do
begin
if odd(n) then begin
if (zahl mod n =0) then begin treffer:=treffer+1;break;end;
end;
end;
end;
if (treffer=0) then
begin
count:=count+1;
write(zahl,' ');
end;
end;
gettime(h2,m2,s3,s1002);
time2:=60*m2+s3+((1/1000)*s1002);
writeln;
writeln('Zeit : ',(time2-time):5:2,' Sekunden mit ', count,' Primzahlen');
writeln;
writeln(' : sind alles Primzahlen !!!');
writeln;
writeln(count,' Primzahlen !');
readln;
end.
Gastarbeiter 18:54, 27. Feb 2006 (CET)
