Nach dem Schleifendurchlauf ist i undefiniert, insbesondere da der Compiler For-Schleifen optimiert (z.B. abwärts zählen bis 0).
Im Prinzip hab ich nichts neues hinzuzufügen, aber da ich mir schon die Mühe gemacht hab:
Delphi-Quellcode:
For D := Prim[anz_Prim] + 1 To max_Prim do
begin
if Odd(D) then
begin
Pmax := Trunc(Sqrt(D));
flg_Prim := True;
for I := 1 to anz_Prim do
begin
P := Prim[I];
flg_Prim := ((D mod P) <> 0);
if not flg_Prim then
Break;
if P >= PMax then
Break;
end;
If flg_Prim then
begin
Inc(anz_Prim);
Prim[anz_Prim] := D;
{lst_Ausgabe.Items.Add(IntToStr(D) + ' ist eine Primzahl!'); }
end;
end;
end;