A276766 a(n) = smallest nonnegative integer not yet in the sequence with no repeated digits and no digits in common with a(n-1), starting with a(0)=0.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 23, 14, 20, 13, 24, 15, 26, 17, 25, 16, 27, 18, 29, 30, 12, 34, 19, 28, 31, 40, 21, 35, 41, 32, 45, 36, 42, 37, 46, 38, 47, 39, 48, 50, 43, 51, 49, 52, 60, 53, 61, 54, 62, 57, 63, 58, 64, 59, 67, 80, 56, 70, 65, 71, 68, 72, 69, 73, 81, 74, 82, 75
Offset: 0
Links
- M. F. Hasler, Table of n, a(n) for n = 0..5274 (All terms)
- Rodolfo Kurchan, Post in Facebook Group "Series".
Programs
-
PARI
{u=[]; (t(k)=if(#Set(k=digits(k))==#k,k)); a=1; for(n=1, 99, print1(a","); u=setunion(u, [a]); t(u[1])||u[1]++; while(#u>1&&u[2]<=u[1]+1, u=u[^1]); for(k=u[1]+1, 9e9, setsearch(u, k)&&next; (d=t(k))&& !#setintersect(Set(digits(a)), Set(d))&&(a=k)&&next(2))); a} \\ M. F. Hasler, Sep 17 2016
-
Python
def ok(s, t): return len(set(t)) == len(t) and len(set(s+t)) == len(s+t) def agen(): # generator of complete sequence of terms aset, k, mink, MAX = {0}, 0, 1, 987654321 while True: if k < MAX: yield k else: return k, s = mink, str(k) MAX = 10**(10-len(s)) while k < MAX and (k in aset or not ok(s, str(k))): k += 1 aset.add(k) while mink in aset: mink += 1 print(list(agen())[:73]) # Michael S. Branicky, Jun 30 2022
Extensions
Edited by M. F. Hasler, Sep 17 2016
Comments