Hallo Leute,
habe zur Primfaktorzerlegung hier einen Quelltext gefunden, den ich entsprechend abgeändert habe.
Er läuft allerdings, jedoch viel zu langsam, sodass bei größeren Werten das Programm abstürzt.
Könnt ihr mir da weiterhelfen, was ich evtl. verbessern kann?
Danke
-fapsons-
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;
while x mod i = 0 do
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;