Pagini recente » Cod sursa (job #2166368) | Cod sursa (job #570798) | Cod sursa (job #1021315) | Cod sursa (job #1754486) | Cod sursa (job #250657)
Cod sursa(job #250657)
const fin='fact.in';
fout='fact.out';
var p,pnou,plo:longint;
n,li,lo:int64;
f,g:text;
function calculare(n:int64):longint;
var nr0:longint;
begin
nr0:=0;
while n div 5<>0 do
begin
nr0:=nr0+n div 5;
n:=n div 5;
end;
calculare:=nr0;
end;
procedure binar(li,lo:int64);
var mij:int64;
begin
if li=lo then begin
if p=calculare(li) then
n:=li
else
n:=-1;
exit;
end
else begin
if (li+lo) mod 2=0 then
mij:=(li+lo) div 2
else
mij:=(li+lo) div 2 - 2;
pnou:=calculare(mij);
if p=pnou then begin
n:=mij;
exit;
end;
if p<pnou then
binar(li,mij)
else binar(mij+1,lo);
end;
end;
begin
assign(f,fin);
assign(g,fout);
reset(f);
readln(f,p);
close(f);
if p=0 then
n:=1
else begin
li:=5;
lo:=25;
plo:=6;
while plo<=p do
begin
li:=lo;
lo:=lo*5;
plo:=plo+lo div 5;
end;
binar(li,lo);
end;
rewrite(g);
writeln(g,n);
close(g);
end.