Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Optimierung eines Stück Codes für eine Wette!

  Alt 12. Nov 2009, 08:10
so was hier würde ich übrigens als Schiedsrichter nicht durchgehen lassen:
Delphi-Quellcode:
Prim[1] := 2;
Prim[2] := 3;
Prim[3] := 5;
anz_Prim := 3;
Denn sonst kommt der nächste und knotet gleich alle Primzahlen fest ins Programm. Entweder wird alles ermittelt oder alles fest rein geknotet. Oder warum hast du nur die ersten 3 Primzahlen fest rein geknotet und nicht die ersten 4?

@uwe:
folgendes sollte noch schneller sein:
Delphi-Quellcode:
For D := 7 To max_Prim do begin // 6 ist keine Primzahl, daher ab 7
  if not Odd(D) then Continue; // schließe alle geraden Zahlen aus
  maxTest := Trunc(Sqrt(D)); // prüfe nur bis max. Quadratwurzel des Kandidaten
  for I := 2 to anz_Prim do begin // gerade Zahlen hatten wir ausgeschlossen, daher ab 2
    test := Prim[I];
    if test > maxTest then Break;
    if not Boolean(D mod test) then
      Break;
  end;
  if (i < anz_Prim) then
    Continue;
  Inc(anz_Prim);
  Prim[anz_Prim] := D;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat