Pagini recente » Cod sursa (job #432741) | Istoria paginii runda/simulare-oni-2014/clasament | Cod sursa (job #2140397) | Cod sursa (job #1087440) | Cod sursa (job #1556541)
program infoarena_factorial;
var p,n,a,b,z:int64;
f:text;
gata:boolean;
function zero(k:int64):int64;
var p,s:int64;
begin p:=5; s:=0;
while (k div p>=1) do begin
s:=s+(k div p);
p:=p*5;
end; zero:=s;
end;
begin
assign(f,'fact.in');reset(f);readln(f,p);close(f);
assign(f,'fact.out');rewrite(f);
if p=0 then begin n:=1;write(f,n);close(f);end
else begin
a:=1;b:=100000000000;
n:=((a+b) div 2);z:=zero(n);
gata:=z=p;
while not gata do
begin z:=zero(n);
if z<p then begin a:=((a+b) div 2)+1;n:=((a+b) div 2);gata:=false;end
else if z>p then begin b:=((a+b) div 2)-1;n:=((a+b) div 2);gata:=false;end
else gata:=true;
if (a=b) and (not gata) then begin n:=-1;write(f,n);close(f); halt; end;
end;
if z=p then begin n:=(n div 5)*5;write(f,n);close(f); end
else begin n:=-1;write(f,n);close(f); end;
end;
end.