{ a = vector(10 000); u = 1; for (n=1, oo, p=1; forstep (k=n, 1, -1, p*=k; if ( p > #a, break, a[p]==0, a[p]=n; while (a[u], print (u " " a[u]); if (u++>#a, break (3); ); ); ); ); ); } quit