label fin;
function ss(n:integer):boolean;
var
i:integer;
begin
if n=1 then exit(false);
for i:=2 to round(sqrt(n)) do
if n mod i=0 then exit(false);
exit(true);
end;
var
a,p:integer;
begin
readln(a);
write(a,'=');
if ss(a) then begin
write(a);
goto fin;
end;
for p:=2 to trunc(sqrt(a)) do
if a mod p=0 then begin
write(p);
a:=a div p;
break;
end;
while not(ss(a)) do
for p:=2 to trunc(sqrt(a)) do
if a mod p=0 then begin
write('*',p);
a:=a div p;
break;
end;
write('*',a);
fin:readln;
end.
http://www.freepascal.org/download.var
判断质子数%2是否等于0再乘以余数不就行了
yuyaoshishiyanxiaoauewangzhan