Pagini recente » Cod sursa (job #249237) | Cod sursa (job #1015455) | Cod sursa (job #500666) | Cod sursa (job #205309) | Cod sursa (job #274819)
Cod sursa(job #274819)
var P : longint;
f : textfile;
function CountFactZero(N : int64) : int64;
var i : int64;
begin
i := 0;
while N > 0 do
begin
inc(i, N div 5);
n := n div 5;
end;
CountFactZero := i;
end;
function CautaBinar(P, s, f : int64) : integer;
var z : int64;
rez : integer;
begin
if s > f
then CautaBinar := -1;
z := CountFactZero((s+f) div 2);
if z = -1 then
begin
CautaBinar := -1;
exit;
end;
if z = p then
begin
rez := (s+f) div 2;
while CountFactZero(rez-1) = p do
dec(rez);
CautaBinar := rez;
exit;
end;
if z < P
then CautaBinar := CautaBinar(P, (s + f) shr 1, f)
else CautaBinar := CautaBinar(P, s, (s + f) shr 1 - 1);
end;
begin
Assign(f, 'fact.in');
Reset(f);
Read(f, P);
Close(f);
Assign(f, 'fact.out');
Rewrite(f);
Write(f, CautaBinar(P, 1, 100000000000));
Close(f);
end.