Cod sursa(job #51890)
var li,lf,w,p,a:longint;
procedure cautare_bin(li,lf:longint);
var i:int64;
begin
a:=((li+lf-1) div 2);
i:=5;
w:=0;
while trunc(a/i)>0 do
begin
w:=w+trunc(a/i);
i:=i*5;
end;
end;
procedure cautare;
var gasit:boolean;
begin
li:=1;
lf:=100000000;
gasit:=false;
while li<=lf do
begin
cautare_bin(li,lf);
if w=p then
begin
gasit:=true;
break
end
else if w<p then
begin
li:=a-1;
// cautare_bin(li,lf)
end
else begin
lf:=a-1;
// cautare_bin(li,a-1);
end;
end;
if not gasit then
a:=-1;
end;
procedure scriere;
begin
assign(output,'fact.out');
rewrite(output);
write(a);
close(output);
end;
procedure citire;
begin
assign(input,'fact.in');
reset(input);
read(p);
close(input);
end;
begin
citire;
cautare;
scriere;
end.