Herzlich willkommen in der Delphi-PRAXiS, Waldbärchen.
Dein Algortihmus liefert immer 1 als vorletzten PrimTeiler. Die 117 entsteht durch eine Unachtsamkeit beim Anhängen des endgültig letzten Teilers - ohne Trenner. Hat Klaus aber schon erkannt.
In deiner Faktorisierungsfunktion vermisse ich die klassische Fallunterscheidung:
Delphi-Quellcode:
function MinFactor(n: Int64): Int64;
begin
if n < 1 then
Result := 0
else if n mod 2 = 0 then
Result := 2
else begin
Result := 3;
repeat
if n mod Result = 0
then Exit
else Inc(Result, 2);
until (Result * Result > n);
Result := n;
end;
end;
Nur ungerade Faktoren müssen in der Prüfschleife betrachtet werden.
Freundliche Grüße vom marabu