Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
FreePascal / Lazarus
|
AW: Sieb des Eratosthenes
4. Jun 2013, 13:05
Ich hab hier ein altes TP-Sieb ausgegraben:
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
LOOPEND= $FFFFFFF;
var
sieb : array [0..LOOPEND] of byte;
i,j,lauf : longint;
start,
ende : tdatetime;
begin
writeln (' Sieber');
fillchar(sieb,sizeof(sieb),#0);
start:=time;
i:=2;
while i < (LOOPEND shr 1) do begin
j:=i *2;
while j <= LOOPEND do begin;
sieb[j] := 1;
inc(j,i);
end;
repeat
inc(i,1);
until sieb[i]=0;
end;
ende:=time;
j:=1;
for i:=1 to loopend do if sieb[i]=0 then inc(j,1);
writeln(' im Bereich von 0 bis ',formatfloat('0,',loopend/1),' habe ich ',j,' Primzahlen gefunden!');
writeln('Ben”tigte Zeit:',formatdatetime('HH.MM:SS:HH:ZZZ',ende-start));
readln;
for i:=1 to 20 {LOOPEND} do begin
if sieb[i]=0 then write(i:8);
end;
readln;
end.
Die reine Rechenzeit für ca 250 Mio liegt bei ~15-16sec
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
|
|
Zitat
|