flatten(n) = { if (n==1, [1], my (f=factor(n)); concat(vector(#f~, i, vector(f[i,2], j, f[i,1]))) ); } T(n,k) = { my (nn=flatten(n), kk=flatten(k), pp=vector(max(0, #nn+#kk-1))); for (i=1, #nn, for (j=1, #kk, pp[i+j-1]=max(pp[i+j-1], min(nn[i], kk[j])); ) ); if (pp!=vecsort(pp), print ("#"n" "k" "pp); quit; ); vecprod(pp); } a(n) = T(n, n) for (n=1, 10 000, print (n " " a(n))) quit