s = 0 unseen = 1 seen(v) = bittest(s, v) see(v) = s = bitor(s, 2^v); while (seen(unseen), unseen++) P = 3 \\ P = 2 for A005941 Inverse of the Doudna sequence A005940. a = vector(10 000) \\ inverse of A356867 u = 1 seq = [0] \\ [n, a(n), p] nb = 0 emit(n, v) = { if (v <= #a, a[v] = n; while (a[u], print (u " " a[u]); if (u++ > #a, quit; ); ); see(v); if (#seq < nb++, seq = concat(seq, vector(#seq)); ); seq[nb] = [n, v, 2]; ); } { for (e = 0, oo, my (t = P^e, v); emit(t, t); for (m = 1, oo, if (m > nb, break, seq[m][1] >= (P-1)*t, break, while (seq[m][3]==P || seen(v = seq[m][2] * seq[m][3]), seq[m][3] = nextprime(1 + seq[m][3]); ); emit(t + seq[m][1], v); ); ); ); }