Hi!
Ich bin gerade dabei einen Algorithmus zu erstellen, der beliebig viele der ersten Primzahlen rekursiv berechnet. Für mich erscheint der Code logisch, Abbruchbedingungen sind auch definiert, trotzdem beklagt sich Delphi über einen StackOverflow. Der Code sieht folgendermaßen aus:
Delphi-Quellcode:
procedure TForm1.Prim_re(n,i:integer);
begin
if (n < limit) then begin
if (i<=1) then List2.Items.Add(IntToStr(n))
else
if (n mod i) <> 0 then Prim_re(n,i-1);
end;
Prim_re(n+1,n);
end;
Die Variable limit ist die Obergrenze, bis zu der Primzahlen gesucht und in der List2 angezeigt werden sollen. n steht für die aktuelle Zahl, die auf Teilbarkeit untersucht wird und i ist sozusagen eine Laufvariable.
An sich ist der Code also nicht allzu schwer zu durchblicken.
Ich hoffe dass irgendjemand mir helfen kann, bzw. weiß wo hier der Fehler liegen könnte?
Gruß und danke im Voraus