Cod sursa(job #157671)

Utilizator ghitza_2000Stefan Gheorghe ghitza_2000 Data 13 martie 2008 10:42:19
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.63 kb
var a,p,x,n,d,k:longint;
    f,g:text;
    ok:boolean;
begin
assign(f,'fact.in'); reset(f);
readln(f,p); close(f);
assign(g,'fact.out'); rewrite(g);
k:=5;    ok:=true;
repeat
if p=k then ok:=false
else
k:=k*5+5;
until ((k>p) or (ok=false));
if ok then
if p=0 then writeln(g,'1')
else begin
a:=0; x:=305175781; n:=1220703125;
repeat
a:=a+(p div x)*n;
n:=n div 5;
d:=(p div x)*x;
p:=p-d;
k:=5;
ok:=true;
repeat
if p=k then ok:=false
else
k:=k*5+5;
until ((k>p) or (ok=false));
x:=(x-1)div 5;
until (p=0) or (ok=false);
if ok then
writeln(g,a)
else writeln(g,'-1');
end
else writeln(g,'-1');
close(g);
end.