xxo9001 2008-02-27 04:05:00
点我顶贴
收藏
删除
program r114;
const r=320000;
var
a:array[1..30000]of longint;
b:array[1..100]of longint;
p:array[1..r]of boolean;
i,j,k,m,n,l:longint;
x:int64;
procedure getp;
var
i,j:longint;
begin
p[1]:=false;
i:=2;
while i<r do
begin
if p[i] then
begin
j:=i*2;
while j<=r do
begin
p[j]:=false;
j:=j+i;
end;
end;
inc(i);
end;
j:=0;
for i:=1 to r do
if p[i] then begin j:=j+1; a[j]:=i; end;
l:=j;
end;
begin
fillchar(p,sizeof(p),true);
getp;
readln(x);
i:=1;
j:=1;
repeat
if (frac(x/a[i])=0) then begin b[j]:=a[i]; j:=j+1; x:=trunc(x/a[i]); end
else i:=i+1;
until i=l;
write(b[1]);
for i:=2 to j-1 do write( ,b[i]);
end.