A089590 Uban numbers (the letter u is banned from the English name of the number).
0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99
Offset: 1
Links
- Daniel Arribas and Reinhard Zumkeller, Table of n, a(n) for n = 1..1000 (first 89 terms from Daniel Arribas)
- Roel and Bas van Dijk, Numerals package, Hackage (Haskell packages)
- Eric Weisstein's World of Mathematics, Uban Number
- Index entries for sequences related to number of letters in n
Programs
-
Haskell
import Data.Maybe (fromJust) import Data.Text (Text); import qualified Data.Text as T (all) import Text.Numeral.Grammar.Reified (defaultInflection) import qualified Text.Numeral.Language.EN as EN -- see link a089590 n = a089590_list !! (n-1) a089590_list = filter (T.all (/= 'u') . numeral) [0..] where numeral :: Integer -> Text numeral = fromJust . EN.gb_cardinal defaultInflection -- Reinhard Zumkeller, Jan 23 2015
-
Python
from num2words import num2words from itertools import islice, product def ok(n): return "u" not in num2words(n) def agen(): # generator of terms < 10**304 base, pows = [k for k in range(1, 1000) if ok(k)], [1] yield from ([0] if ok(0) else []) + base for e in range(3, 304, 3): if "u" not in num2words(10**e)[4:]: pows = [10**e] + pows for t in product([0] + base, repeat=len(pows)): if t[0] == 0: continue yield sum(t[i]*pows[i] for i in range(len(t))) print(list(islice(agen(), 100))) # Michael S. Branicky, Aug 19 2022
Extensions
a(1) = 0 prepended by Reinhard Zumkeller, Jan 23 2015
Comments