tyvj 分解质因数

发布于 2019-04-03  33 次阅读


题目描述

给定一个正整数n,将n分解质因数,并输出其结果。

输入

一行一个正整数n

输出

输出n的所有质因数并用乘号链接

思路

暴力枚举每一个质数,然后一直除,直到除不了为止

var
  n,n1:int64;
  i:longint;
begin
  read(n);
  write(n,'=');
  n1:=n;
  for i:=2 to trunc(sqrt(n)) do
    if n mod i=0 then
      begin
        while (n mod i=0) and (n div i<>1) do
          begin
            write(i,'*');
            n:=n div i;
          end;
        if n div i=1 then begin writeln(n); halt; end;
      end;
  if n=13 then begin writeln('*',n); halt end;
  if n1=n then begin writeln(n); halt; end;
  writeln(n);
end.
]]>