How to find the largest prime factor of a number in Pascal

1 Answer

0 votes
program LargestPrimeFactorProgram;
 
function LargestPrimeFactor(n: Int64): Int64;
var
  factor: Int64;
begin
  factor := 2;
  LargestPrimeFactor := -1;
 
  while n > 1 do
  begin
    if (n mod factor = 0) then
    begin
      LargestPrimeFactor := factor;
      n := n div factor;
    end
    else
      Inc(factor);
  end;
end;
 
begin
  Writeln(LargestPrimeFactor(124)); // 2 x 2 x 31
  Writeln(LargestPrimeFactor(12)); // 2 x 2 x 3
  Writeln(LargestPrimeFactor(288)); // 2 x 2 x 2 x 2 x 2 x 3 x 3
  Writeln(LargestPrimeFactor(1288)); // 2 x 2 x 2 x 7 x 23
  Writeln(LargestPrimeFactor(100000000));// 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 
  Writeln(LargestPrimeFactor(600851475143)); // 71, 893, 1471, 6857
end.
 
 
 
(*
run:
 
31
3
3
23
5
6857
 
*)
 

 



answered Apr 16, 2025 by avibootz
edited Apr 21 by avibootz
...