OFFSET
1,1
LINKS
Robert Israel, Table of n, a(n) for n = 1..890
MAPLE
F:= proc(m)
uses Optimization;
local dmax, dmin, dmax0, cons, obj, i, j, x, r, R;
dmin:= max(padic:-ordp(m, 2), padic:-ordp(m, 5));
dmax0:= max(1, 2*dmin-1);
if dmax0::even then dmax0:= dmax0+1 fi;
for dmax from dmax0 to 38 by 2 do
x:= 'x':
x[dmax]:= 1:
cons:= [add((10^i mod m) * x[i], i=dmin..dmax) = r * m,
add(x[i], i=dmin..dmax) = (1+dmax)/2,
seq(seq(`if`(10^i mod m = 10^j mod m, x[i] >= x[j], NULL), i=dmin..j-1), j=dmin+1..dmax-1) ];
obj:= add(10^i * x[i], i=dmin..dmax-1);
if dmax = dmin then
if dmax = 1 and (10 mod m = 0) then return 10 else next fi fi;
R:= traperror(Minimize(obj, cons, assume=nonnegint, binaryvariables = [seq(x[i], i=dmin..dmax-1)], depthlimit=100));
if R = "no feasible integer point found; use feasibilitytolerance option to adjust tolerance" then next
elif R = lasterror then printf("%s for dmax=%d at m=%d\n", R, dmax, m)
else return (R[1]+10^dmax) fi
od;
FAIL
end proc:
map(F, [$1..100]); # Robert Israel, Dec 04 2024
CROSSREFS
KEYWORD
base,nonn
AUTHOR
Amarnath Murthy, Mar 27 2004
EXTENSIONS
Corrected and extended by Mark Hudson (mrmarkhudson(AT)hotmail.com), Aug 12 2004
Name clarified by Robert Israel, Dec 03 2024
STATUS
approved