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