回 帖 发 新 帖 刷新版面

主题:help ~~~~~~难

输入一个正整数N,把它分解成质因子相乘的形式
如: 36=1*2*2*3*3; 19=1*19;

回复列表 (共4个回复)

沙发

先做一个质数表,然后一步步看是否能够整除,直到结果为质数!

板凳

var n,i,k:longint;
begin
readln(n);
for i:=2 to n do
begin
while n<>i do
begin
if n mod i=0 then{begin
write(i,'*');
n:=trunc(n/i);
end
else break;
end;
end;
writeln(n);
readln;
end.

3 楼

楼上你会不会很累啊
一个质数表呢。。。。。。

4 楼

program lt;
var n,s,i:integer;
begin
  write('N=');readln(n);
  if n<>1 then write(n,'=1*') else write(n,'=1');
  s:=n;
  for i:=2 to n do
  begin
    repeat
      if s mod i=0 then begin s:=trunc(s/i);
         write(i);if s<>1 then write('*'); end;
    until (s mod i<>0);
  end;
  writeln;
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册