Einzelnen Beitrag anzeigen

Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

Re: Problem beim Sieb des Eratostenes

  Alt 8. Okt 2003, 19:24
Hallo,

ich habe Dir mal ein Beispiel aufgeschrieben:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Liste: array of Integer;
  Len, I, J: Integer;
begin
  Memo1.Lines.Clear;

  Len := StrToInt(EGroesse.Text);
  SetLength(Liste, Len + 1);

  for I := 1 to Len do
  begin
    Liste[I] := I;
  end;

  for I := 2 to Len div 2 do
  begin
    if Liste[I] <> 0 then begin
      for J := 2 to Len div I do
      begin
        Liste[I * J] := 0;
      end;
    end;
  end;

  for I := 1 to Len do
  begin
    if Liste[I] <> 0 then begin
      Memo1.Lines.Add(IntToStr(Liste[I]));
    end;
  end;

  Finalize(Liste);
end;
Da dynamische Arrays immer bei 0 beginnen, habe ich bewußt ein Element mehr angefordert, um Rechnerei zu sparen. Du solltest nochmal überlegen, ob meine Schleifenendwerte stimmen, da habe ich nicht viel Grips reingesteckt. Mein Memo kannst du wieder durch das Grid ersetzen.

Viele Grüße
Lutz
  Mit Zitat antworten Zitat