fork download
  1. program PrimeFact;
  2. {$APPTYPE CONSOLE}
  3.  
  4. uses
  5. SysUtils, Math;
  6.  
  7. var
  8. n: Integer;
  9. ans: String;
  10. i: Integer;
  11. top: Integer;
  12. count: Integer;
  13.  
  14. begin
  15. ReadLn(Input, n);
  16. top := Round(Sqrt(Power(10, 9))) + 2;
  17. for i := 2 to top do
  18. begin
  19. count := 0;
  20. while n mod i = 0 do
  21. begin
  22. n := n div i;
  23. count := count + 1;
  24. end;
  25. if count = 1 then
  26. ans := ans + IntToStr(i) + '*'
  27. else if count > 1 then
  28. ans := ans + IntToStr(i) + '^' + IntToStr(count) + '*';
  29. end;
  30. if n <> 1 then
  31. begin
  32. ans := ans + IntToStr(n);
  33. WriteLn(ans);
  34. end
  35. else
  36. begin
  37. Delete(ans, Length(ans), 1);
  38. WriteLn(ans);
  39. end;
  40. end.
Success #stdin #stdout 0s 5320KB
stdin
1008
stdout
2^4*3^2*7