Cod sursa(job #260302)
Utilizator | Data | 16 februarie 2009 21:36:01 | |
---|---|---|---|
Problema | Factorial | Scor | 5 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 0.74 kb |
program alex;
var f:text;
i,j,p,m,s,h,d:longint;
begin
assign(f,'fact.in');reset(f);
readln(f,p);
close(f);
assign(f,'fact.out');rewrite(f);
if p=0 then writeln(f,1)
else begin
i:=1;
j:=p;
while(i<=j)and(s<>p)do
begin
m:=(i+j) div 2;
s:=0;
h:=1;
d:=m*5;
while(d div h<>0)do
begin
h:=h*5;
s:=s+(d div h);
end;
if s<p then i:=m
else j:=m;
if m*5=p then writeln(f,m*5)
else writeln(f,-1);
end;
end;
close(f);
end.