permut(m,n)=prod(i=0,n-1,m-i) A094272(n,prev=0,debug=0,dontfactor=[])= { /* Note: A094272(12) is best called as A094272(12,,,Set(8)) because A094272(11)-8 is hard to factor. */ local(mult, result, p, q, x); if (!prev, prev = if(n>1, A094272(n-1,,debug), 0)); mult = permut(prev, n-1); if (prev + n >= mult, result = prev + n; while (permut(result,n) % mult, result++); , p = vecsort(concat(vector(n-1, i, if(!setsearch(dontfactor, i-1), factor(prev-i+1)[,1]~, [])))); result = 0; for (c=1, #p, q = vector(c, i, p[#p-c+i]); if (q[1] == 1, next); if (debug, print1(c",")); forvec (v=vector(c, i, [0, min(n, q[i])-1]), x = lift(chinese(vector(c, i, Mod(v[i], q[i])))); if ((!result | result>x) & (x>=prev+n) & (permut(x,n) % mult == 0), result = x; ); ); if (result, break); ); if (debug, print); ); result }