login
a(n) is the smallest nonnegative number whose British English name has the letter "e" in the n-th position.
4

%I #11 Apr 21 2023 11:37:54

%S 8,0,1,3,3,12,13,17,21,23,23,73,1700,108,107,101,103,103,112,113,117,

%T 121,123,123,173,323,373,1103,1103,1112,1113,1117,1121,1123,1123,1173,

%U 1323,1373,3323,3373,11373,13323,13373,17373,23323,23373,73373,101123,101173

%N a(n) is the smallest nonnegative number whose British English name has the letter "e" in the n-th position.

%D GCHQ, The GCHQ Puzzle Book, Penguin, 2016. See page 70.

%o (Python)

%o from num2words import num2words

%o from itertools import count, islice

%o def n2w(n):

%o return "".join(c for c in num2words(n, lang='en_GB') if c.isalpha())

%o def A362121(n, t="e", i0=0): # t is target letter, i0 is start

%o return next(i for i in count(i0) if len(w:=n2w(i))>=n and w[n-1]==t)

%o print([A362121(n) for n in range(1, 31)]) # _Michael S. Branicky_, Apr 21 2023

%o (Python) # faster for initial segment of sequence; uses n2w, imports above

%o def A362121gen(t="e", i0=0, offset=1): # generator of terms w

%o adict, n = dict(), offset

%o for i in count(i0):

%o w = n2w(i)

%o if t in w:

%o locs = [i+1 for i, c in enumerate(w) if w[i] == t]

%o for v in locs:

%o if v not in adict: adict[v] = i

%o while n in adict: yield adict[n]; n += 1

%o print(list(islice(A362121gen(), 50))) # _Michael S. Branicky_, Apr 21 2023

%Y See A164790, A362120, and A362122 for other versions.

%K nonn,word

%O 1,1

%A _N. J. A. Sloane_, Apr 20 2023

%E a(14) and beyond from _Michael S. Branicky_, Apr 21 2023