Cod sursa(job #489797)
program fact;
var f,g:text; p,N:longint;
function nr_zero(k:longint):longint;
var nr,i:longint;
begin
nr:=0;
i:=5;
While i<=k do
begin
inc(nr,k div i);
i:=i*5;
end;
nr_zero:=nr;
end;
procedure caut_bin(st,dr:longint);
var mijl,nr:longint;
begin
mijl:=(st+dr) div 2;
nr:=nr_zero(mijl); {nr de 0 al factorialului valorii medii}
If nr>p then caut_bin(st,mijl);
If nr<p then caut_bin(mijl,dr);
If nr=p then
begin
N:=mijl;
exit;
end;
If st=dr then
begin
N:=-1;
exit;
end;
end;
function val_min(k:longint):longint;
begin
While k mod 5 > 0 do dec(k);
val_min:=k;
end;
begin
Assign(f,'fact.in'); Reset(f);
Assign(g,'fact.out');Rewrite(g);
Read(f,p); Close(f);
caut_bin(1,100000001);
If N mod 5 > 0 then N:=val_min(N);
Writeln(g,N); Close(g);
end.