Vielen Dank schon mal für eure Hilfe...
Hab es noch nicht versucht mit deinen Verbesserungsvorschlägen MatWur, aber wie setze ich das denn um, dass meine For-Schleife nur ungerade Werte annimmt?
Wahrscheinlich gibt es für mein Problem auch eine viel einfachere Lösung und zwar besteht mein Wert, der zerlegt werden soll aus Faktoren, die jeweils Primzahlen sind.
Also X := 3 * 5 * 7 * 11 oder ähnlich
der höchste Faktor meines Wertes kann max. 31 sein.
Es müsste nur ausgegeben werden, welche einzelnen Faktoren mein Produkt enthält...
Hier nochmal der aktuelle Code mit der ersten Änderung:
Delphi-Quellcode:
function Is_Prime(x: int64): Boolean;
var i :Integer;
begin
result := true;
for i := 2 to x-1 do
if x mod i = 0 then result := false
end;
function Get_Prime_Factors(x: Int64): TIntArray;
var i, j, k :Integer;
r :TIntArray;
begin
r := TintArray.Create;
k := 1;
for i := 2 to x do
begin
j := 0;
if x mod i = 0 then
begin
x := x div i;
inc(j);
end;
if j = 1 then
begin
r.ints[k] := i;
k := k + 1;
end;
end;
result := r;
end;