explore(n, s, p, i) = \ if (s < best, \ if (s > n, \ best = s, \ for (j=i, #p~, \ explore(n, s*p[j,1], p, j); \ ); \ ); \ ); a(n) = my (p=factor(n)); \ best = n * p[1,1]; \ explore(n, 1, p, 1); \ return (best) for (n=2, 10 000, print (n " " a(n))) quit