"""
Project Euler - 17

https://projecteuler.net/problem=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.
(21124)
"""

num_lengths = {
    1 : 3,
    2 : 3,
    3 : 5,
    # ...
    19 : ...,
    20 : ...,
    #######
    # 21-99   # 
    ####
    # 100-999
    ###
    # 1000
}




num_names = {
    1 : "one",
    2 : "two",
    3 : "three",
    4 : 'four',
    5 : 'five',
    6 : 'six',
    7 : 'seven',
    8 : 'eight',
    9 : 'nine',
    10 : 'ten',
    11 : 'eleven',
    12 : 'twelve',
    13 : 'thirteen',
    14 : 'fourteen',
    15 : 'fifteen',
    16 : 'sixteen',
    17 : 'seventeen',
    18 : 'eighteen',
    19 : 'nineteen',
    20: "twenty",

    30: "thirty",
    40 : 'forty',
    50 : 'fifty',
    60 : 'sixty',
    70 : 'seventy',
    80 : 'eighty',
    90 : "ninety",
}


def number_name(n):
    if n <= 20:
        return num_names[n]
    if n < 100:
        # 7  4
        tens = n // 10
        ones = n % 10
        if ones == 0:
            return num_names[tens * 10]
        else:
            return f"{num_names[tens * 10]}-{num_names[ones]}"
    if n < 1000:
        hundreds = n // 100
        hundred_text = num_names[hundreds] + " hundred"
        rest = n % 100
        if rest == 0:
            return hundred_text
        else:
            rest_text = number_name(rest)
            return hundred_text + " and " + rest_text


print(number_name(259))
name = number_name(259)
print(len(name.replace('-','').replace(' ','')))




summert_lengde = 0
for n in range(1,4):
    lengde = num_lengths[n]
    summert_lengde += lengde

print(summert_lengde)




























































