a(n) = { my (v=1, f=factor(n), x=0); for (i=1, #f~, x=bitor(x,f[i,2])); while (x, my (e=2^valuation(x,2),sf=1); for (i=1, #f~, if (bitand(e,f[i,2]), sf*=f[i,1]; ); ); v*=prime(1+valuation(e,2))^#select(issquarefree,[2..sf]); x-=e; ); return (v); } for (n=1, 10 000, print (n " " a(n))) quit