%I #16 Jan 30 2022 02:33:53
%S 1,2,3,12,13,22,23,102,103,112,113,122,123,223,323,1112,1113,1122,
%T 1123,1223,1323,2323,3323,12323,13323,22323,23323,102323,103323,
%U 112323,113323,122323,123323,223323,323323,1113323,1122323,1123323,1223323,1323323,2323323,3323323
%N a(n) is the smallest number whose name in US English contains n consonants.
%C In US English, "102" is written as "one hundred two".
%C Vowels are {a, e, i, o, u, y} here. If y is a consonant, then a(5)..a(7) = 21, 22, 23 are the first of subsequent differences. - _Michael S. Branicky_, Jan 29 2022
%H Michael S. Branicky, <a href="/A157899/b157899.txt">Table of n, a(n) for n = 1..2478</a> (all terms < 1000 centillion)
%H Wiktionary, <a href="https://en.wiktionary.org/wiki/one_hundred_one">one hundred one</a> (US).
%H Wiktionary, <a href="https://en.wiktionary.org/wiki/one_hundred_and_one">one hundred and one</a> (UK).
%H Michael S. Branicky, <a href="/A157899/a157899.py.txt">Python program</a>
%e "oNe" has 1 consonant, "TWo" has 2, "THRee" has 3, "TWeLVe" has 4, "THiRTeeN" has 5, "TWeNTyTWo" has 6, "TWeNTyTHRee" has 7, "oNe HuNDReD TWo" has 8, "oNe HuNDReD THRee" has 9, "oNe HuNDReD TWeLVe" has 10.
%o (Python) # see linked program for going to large numbers
%o from num2words import num2words
%o def consonants(n):
%o w = num2words(n).replace(" and", "")
%o return sum(1 for c in w if c in "bcdfghjklmnpqrstvwxz")
%o def aupton(nn):
%o k, adict, alst = 1, {}, []
%o while len(alst) < nn:
%o c = consonants(k)
%o if c not in adict:
%o adict[c] = k
%o alst = []
%o for i in range(1, max(adict)+1):
%o if i not in adict:
%o break
%o alst.append(adict[i])
%o k += 1
%o return alst
%o print(aupton(27)) # _Michael S. Branicky_, Jan 29 2022
%K nonn,word
%O 1,2
%A _Rodolfo Kurchan_, Mar 08 2009
%E Edited by _Jon E. Schoenfield_, Sep 29 2018
|