Mai intai trebuie sa te autentifici.
Cod sursa(job #1997890)
Utilizator | Data | 5 iulie 2017 19:04:58 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
Program Factorial;
var p:0..100000010;
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);
if p=0 then writeln(g,1)
else begin
st:=1;
dr:=p*5+100;
while(st<=dr) do begin
m:= (st+dr) div 2;
if(zero(m)>=p)then dr:=m-1
else
st:=m+1;
end;
if zero(st)=p then
writeln(g,st)
else
writeln(g,'-1');
end;
close(f);close(g);
end.