If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total.

If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used?

NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters. The use of "and" when writing out numbers is in compliance with British usage.


In [7]:
from num2words import num2words
sum( len(num2words(i)) for i in range(1,6))


Out[7]:
19

In [12]:
from num2words import num2words
sum( len(''.join(i for i in num2words(j) if i.isalpha())) for j in range(1,1001))


Out[12]:
21124

In [11]:
n= ''.join(i for i in num2words(342) if i.isalpha())
print(n, len(n))


threehundredandfortytwo 23