Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Sieb des Erathosthenes

  Alt 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)
  Mit Zitat antworten Zitat