Pagini recente » Cod sursa (job #528606) | Cod sursa (job #1324789) | Cod sursa (job #1677120) | Cod sursa (job #2245573) | Cod sursa (job #250324)
Cod sursa(job #250324)
const fin='fact.in';
fout='fact.out';
var p,pli,plo:longint;
n,li,lo:int64;
f,g:text;
procedure binar(li,lo,lint:int64);
var mij:int64;
begin
if li>=lo then begin
if p=(li-lint) div 5+pli 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 + 3;
if p=(mij-lint) div 5+pli then begin
n:=mij;
exit;
end;
if p<(mij-lint) div 5+pli then
binar(li,mij,lint)
else binar(mij,lo,lint);
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;
pli:=1;
plo:=6;
while plo<=p do
begin
li:=lo;
lo:=lo*5;
pli:=plo;
plo:=plo+lo div 5;
end;
lo:=lo-5;
plo:=(lo-li) div 5+pli;
binar(li,lo,li);
end;
rewrite(g);
writeln(g,n);
close(g);
end.