Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

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

  Alt 12. Nov 2009, 07:53
Hallo,

soviel schneller nicht mit meinen Änderungen, aber eventuell 1 oder 2 Millisekunden?

Delphi-Quellcode:
procedure Tfrm_Hauptform.btn_RechneClick(Sender: TObject);

{ ################################################################################################################################## }

var
D : cardinal;
flg_NoPrim : Boolean;

Anfg_Zeit : TDateTime;
Ende_Zeit : TDateTime;
Diff_Zeit : TDateTime;

I : cardinal;
r : cardinal;
{ ################################################################################################################################## }

begin

max_Prim := StrToInt(txt_MaxZahl.Text);
setlength(prim,1000000);
Prim[1] := 2;
Prim[2] := 3;
Prim[3] := 5;
anz_Prim := 3;

lst_Ausgabe.Clear;
lst_Ausgabe.Items.Add('Suche Primzahlen ..');
lst_Ausgabe.Items.Add('Start: ' + DateTimeToStr(Now));
lst_Ausgabe.Refresh;

Anfg_Zeit := Now;

// For D := 6 To max_Prim do
  d := 6;
  Repeat
    begin

    // flg_NoPrim := FALSE; // <- ist diese Zuweisung erforderlich,
                            // wird doch im Repeat Until überschrieben.
    I := 1;

    repeat
      // begin
        // r := D mod Prim[I];
        // If r = 0 Then flg_NoPrim := TRUE;
        // flg_NoPrim := r = 0;
        flg_NoPrim = D mod Prim[I];
        inc(i);
      // end;
    until (flg_NoPrim OR (I = anz_Prim));

    // If flg_NoPrim=false then
    // If Not flg_NoPrim then
    case flg_NoPrim of
      false : begin
                // wo ist denn anz_Prim definiert?
                // anz_Prim := anz_Prim + 1;
                Inc(anz_Prim);
                Prim[anz_Prim] := D;
                {lst_Ausgabe.Items.Add(IntToStr(D) + ' ist eine Primzahl!'); }
              end;
    end;
    Inc(d,2);
  Until d >= max_Prim;
end;
Achso, nur hingedaddelt, nicht getestet.
  Mit Zitat antworten Zitat