Pagini recente » Cod sursa (job #83046) | Cod sursa (job #1761005) | Cod sursa (job #1134392) | Cod sursa (job #1833060) | Cod sursa (job #274850)
Cod sursa(job #274850)
var P : longint;
f : textfile;
function CountFactZero(N : int64) : int64;
var i : int64;
begin
i := 0;
while N > 0 do
begin
n := n div 5;
inc(i, N);
end;
inc(i, N);
CountFactZero := i;
end;
function CautaBinar(P, s, f : int64) : integer;
var z, mid : int64;
rez : integer;
begin
CautaBinar := -1;
if s >= f
then CautaBinar := -1;
mid := (s+f) div 2;
z := CountFactZero(mid);
if z = -1 then
begin
CautaBinar := -1;
exit;
end;
if z = p then
begin
rez := mid;
while CountFactZero(rez-1) = p do
dec(rez);
CautaBinar := rez;
Exit;
end;
if (mid < f) and (mid > s) then
if z < P
then CautaBinar := CautaBinar(P, mid, f)
else CautaBinar := CautaBinar(P, s, mid - 1)
else Exit;
end;
begin
Assign(f, 'fact.in');
Reset(f);
Read(f, P);
Close(f);
Assign(f, 'fact.out');
Rewrite(f);
if P = 0
then Write(f, '1')
else Write(f, CautaBinar(P, 0, 410000000));
Close(f);
end.