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

1 Answer

0 votes
program LargestPrimeFactor;

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 3 hours ago by avibootz

Related questions

...