Cod sursa(job #1997886)
| Utilizator | Data | 5 iulie 2017 18:58:30 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | fpc | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
Program Factorial;
var i,p:0..100000010;
n,k,st,dr,m:longint;
f,g:text;
function zero(k:longint) :longint;
var i,s:longint;
begin
i:=5;
s:=0;
while k>=i do begin
s:=s+(k div i);
i:=i*5;
end;
zero:=s;
end;
begin
assign(f,'fact.in');assign(g,'fact.out');
reset(f);rewrite(g);
readln(f,p);
st:=1;
dr:=p*5+100;
while(dr<=st) do begin
m:= (st+dr) div 2;
if(zero(m)>=p)then dr:=m
else
st:=m+1;
end;
if zero(st)=p then
writeln(g,st)
else
writeln(g,'-1');
close(f);close(g);
end.
