Pagini recente » Cod sursa (job #906259) | Cod sursa (job #1414445) | Cod sursa (job #2412960) | Cod sursa (job #639868) | Cod sursa (job #284619)
Cod sursa(job #284619)
program factorial;
var f,g:text;
v:array[1..1000] of int64;
q,st,dr,k,nr:int64;
function val(x:int64):int64;
var a:longint;
s:int64;
begin
s:=0;
while v[nr]*5<=x do begin nr:=nr+1;v[nr]:=v[nr-1]*5; end;
for a:=1 to nr do
s:=s+x div v[a];
val:=s;
end;
begin
assign(f,'factorial.in');
assign(g,'factorial.out');
reset(f);
rewrite(g);
read(f,k);
st:=0;dr:=k*5;nr:=1;v[nr]:=5;
repeat
if dr=st+1 then begin if k<=4 then q:=k*5 else q:=-1; break; end else
begin
q:=val((st+dr) div 2);
if q=k then begin q:=(((st+dr) div 2)div 5)* 5; break end else
if k<q then dr:=(st+dr) div 2 else
if k>q then st:=(st+dr) div 2;
end;
until 1<0;
writeln(g,q);
close(f);
close(g);
end.