Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Sieb des Erathosthenes
17. Jan 2013, 11:03
Delphi-Quellcode:
var
primes: TStringList;
i, j, nr, curr: Integer;
begin
primes := TStringList.Create;
try
nr := strtoint(Edit1.Text);
for i := 2 to nr do
begin
primes.Add(inttostr(i));
end;
for i := 2 to nr do
begin
for j := primes.Count - 1 downto 0 do
begin
curr := StrToInt(primes[j]);
if (curr <> i) and (curr mod i = 0) then
begin
primes.Delete(j);
end;
end;
end;
Listbox1.Items.Assign(primes);
finally
primes.Free;
end;
end;
oder gleich:
Delphi-Quellcode:
var
primes: TStringList;
i, j, nr, curri,currj: Integer;
begin
primes := TStringList.Create;
try
nr := strtoint(Edit1.Text);
for i := 2 to nr do
begin
primes.Add(inttostr(i));
end;
for i := primes.Count - 1 downto 0 do
begin
for j := primes.Count - 1 downto 0 do
begin
curri := StrToInt(primes[i]);
currj := StrToInt(primes[j]);
if (currj <> curri) and (currj mod curri = 0) then
begin
primes.Delete(j);
end;
end;
end;
Listbox1.Items.Assign(primes);
finally
primes.Free;
end;
end;
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
Geändert von Bummi (17. Jan 2013 um 11:14 Uhr)
|