Skip to content

Instantly share code, notes, and snippets.

@Swarchal
Created April 7, 2017 13:06
Show Gist options
  • Save Swarchal/0f6477eb43f18b39fd165c025f7f1654 to your computer and use it in GitHub Desktop.
Save Swarchal/0f6477eb43f18b39fd165c025f7f1654 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
"""
project euler # 17
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.
"""
import inflect
p = inflect.engine()
def length(string):
"""length of string without spaces or hyphens"""
return len(string.replace(" ", "").replace("-", ""))
count = 0
for number in range(1, 1001):
count += length(p.number_to_words(number))
print(count)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment