allocate mem(2^30) base = 2 cat(x,y) = x*base^#digits(y,base)+y a = [0] n = 0 nb = vector(2027483) { for (v=1, #nb, if (v<=2 || nb[v]==1, print (n++ " " a[n]=v); if (n==#a, a = concat(a, vector(#a)); ); for (i=1, n-1, an = cat(a[i],v); if (an>#nb, break, nb[an]++; ); ); for (i=1, n-1, na = cat(v,a[i]); if (na>#nb, break, nb[na]++; ); ); ); ); } quit