Cod sursa(job #288790)
Utilizator | Data | 26 martie 2009 09:16:36 | |
---|---|---|---|
Problema | Factorial | Scor | 20 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.69 kb |
var f:text;
n,p,s,a,x:longint;
ok:boolean;
begin
assign(f,'fact.in');
reset(f);
read(f,p);
close(f);
if p=0 then begin
assign(f,'fact.out');
rewrite(f);
write(f,1);
close(f);
halt;
end
else
if p=1 then begin
assign(f,'fact.out');
rewrite(f);
write(f,5);
close(f);
halt;
end
else
begin
n:=5;
while n<maxlongint do begin
ok:=false;
x:=5;
s:=0;
while not ok do begin
a:=trunc(n/x);
if a=0 then ok:=true;
s:=s+a;
x:=x*5;
end;
if s=p then begin
assign(f,'fact.out');
rewrite(f);
write(f,n);
close(f);
halt;
end
else
if s>p then begin
assign(f,'fact.out');
rewrite(f);
write(f,-1);
close(f);
halt;
end;
n:=n+5;
end;
end;
end.