Pagini recente » Cod sursa (job #366182) | Cod sursa (job #1542903) | Cod sursa (job #2908386) | Cod sursa (job #2592962) | Cod sursa (job #32902)
Cod sursa(job #32902)
program factorial;
var
p: longint;
i, n: int64;
f: text;
Function Nulla(x: int64): int64;
var o, r: int64;
begin
o := 5; r := 0;
While x div o <> 0 do
begin
r := r + x div o;
o := o * 5;
end;
Nulla := r;
end;
Procedure BinKer(e, u: int64);
var akt, k: int64;
begin
if e > u then n := -1
else
begin
k := (e + u) div 2;
akt := Nulla(k);
if akt = p then n := k
else
if akt > p then BinKer(e,k - 1)
else BinKer(k + 1, u);
end;
end;
Begin
Assign(f, 'fact.in');
Reset(f);
ReadLn(f, p);
Close(f);
BinKer(1,5000000000);
if (n <> - 1) then while (Nulla(n - 1) = p) and (n > 1) do Dec(n);
Assign(f, 'fact.out');
ReWrite(f);
WriteLn(f,n);
Close(f);
end.