OFFSET
1,2
LINKS
Michael S. Branicky, Table of n, a(n) for n = 1..10000
Eric Angelini, Talking to me?, personal blog, Feb 2024.
EXAMPLE
0 zero=zéro, 103 one hundred three=cent trois, 3 three=trois, 23 twenty-three=vingt-trois, 33 thirty-three=trente-trois, 37 thirty-seven=trente-sept, 7 seven=sept, 17 seventeen=dix-sept, 27 twenty-seven=vingt-sept, 47 forty-seven=quarante-sept, 57 fifty-seven=cinquante-sept, 67 sixty-seven=soixante-sept, 70 seventy=soixante-dix, 60 sixty=soixante, etc.
MATHEMATICA
a[1]=0; a[n_]:=a[n]=(k=1; While[MemberQ[Array[a, n-1], k]||FreeQ[IntegerDigits@k, Mod[a[n-1], 10]]||!StringContainsQ[IntegerName[k, "Words"], Last@Characters@IntegerName[a[n-1], "Words"]]||!StringContainsQ[IntegerName[k, "French"], Last@Characters@IntegerName[a[n-1], "French"]], k++]; k); Array[a, 91]
PROG
(Python)
from num2words import num2words
from itertools import count, islice
def en(n): return num2words(n).replace(" and", "")
def fr(n): return num2words(n, lang='fr')
def agen(): # generator of terms
an, aset, mink = 0, set(), 1
while True:
yield an
aset.add(an)
t1, t2, t3, k = str(an%10), en(an)[-1], fr(an)[-1], mink
an = next(k for k in count(mink) if k not in aset and t1 in str(k) and t2 in en(k) and t3 in fr(k))
while mink in aset: mink += 1
print(list(islice(agen(), 91))) # Michael S. Branicky, Feb 18 2024
CROSSREFS
KEYWORD
base,nonn,word
AUTHOR
Eric Angelini and Giorgos Kalogeropoulos, Feb 17 2024
STATUS
approved