1.每次除完之后i 要更新,你这里i的值就没变过
2.每次输出后要把t 赋值为0;
3.if n mod i=0 then
begin
t:=t+1;
n:=n div i;
if n=1 then write(i,'(',t,')');
end
这里不能用IF语句,用IF语句只会出1次,要改为WHILE语句我把你的程序改了一下,贴在下面,应该没问题了。
var n,i,t:longint;
begin
readln(n);
write(n,'=');
i:=2;
while n<>1 do
begin
while n mod i=0 do
begin
t:=t+1;
n:=n div i;
end;
if t<>0 then
begin
write(i,'(',t,')');
if n<>1 then write('*');
end;
i:=i+1; t:=0;
end;
End.