Pagini recente » Cod sursa (job #2515498) | Cod sursa (job #3269911) | Cod sursa (job #586120) | Cod sursa (job #2977160) | Cod sursa (job #387695)
Cod sursa(job #387695)
const max5=13;
var p5:array[0..max5]of longint;
p:longint;
procedure crearep5;
var i:byte;
begin
p5[0]:=1;
for i:=1 to max5 do p5[i]:=p5[i-1]*5;
end;
function verifica(n:longint):longint;
var p,p2:longint;
i:byte;
begin
p:=0;
i:=1;
while i<=max5 do
begin
p2:=n div p5[i];
if p2=0 then break;
p:=p+p2;
i:=i+1;
end;
verifica:=p;
end;
procedure sol;
var n1,n2,n,r:longint;
begin
n1:=1;
if(maxlongint-7) div p>=5 then n2:=p*5
else n2:=maxlongint-7;
n:=1;
r:=p;
while n1<=n2 do
begin
n:=n1+(n2-n1)div 2;
while n mod 5<>0 do dec(n);
r:=verifica(n);
if r=p then break
else if r<p then begin
n1:=n+1;
while n1 mod 5<>0 do inc(n1);
end
else begin
n2:=n-1;
while n2 mod 5<>0 do dec(n2);
end;
end;
if r<>p then write('-1')
else write(n);
end;
begin
assign(input,'fact.in');
reset(input);
assign(output,'fact.out');
rewrite(output);
read(p);
crearep5;
sol;
close(output);
close(input);
end.