q:= proc(d, m) local R, t, a, b, x, q;
t:= 10^d+1;
R:= NULL;
for a in numtheory:-divisors(t) do
b:= t/a;
if igcd(a, b) > 1 then next fi;
for x from chrem([0, -m], [a, b]) by t do
q:= x*(x+m)/t;
if q >= 10^d then break fi;
if q >= 10^(d-1) then R:= R, x fi;
od od;
sort(convert({R}, list));
end proc:
seq(op(q(d, 9)), d=1..10)