Pagini recente » Cod sursa (job #1108143) | Cod sursa (job #2928007) | Cod sursa (job #2326143) | Cod sursa (job #768222) | Cod sursa (job #284623)
Cod sursa(job #284623)
program factorial;
var f,g:text;
v:array[1..1000] of int64;
q,st,dr,k,nr:int64;
ok:boolean;
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;ok:=true;
while ok do
begin
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;
end;
writeln(g,q);
close(f);
close(g);
end.