numberWord = { 0: '', 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', 100: 'onehundred', 200: 'twohundred', 300: 'threehundred', 400: 'fourhundred', 500: 'fivehundred', 600: 'sixhundred', 700: 'sevenhundred', 800: 'eighthundred', 900: 'ninehundred', 1000: 'onethousand' } andString = "and" numberString = "" for i in range (1,21): numberString += numberWord[i] for i in range (21,1001): ones = i % 10 tens = i % 100 - ones huns = i - tens - ones numberStringInProgress = "" if i == 20 or i == 30 or i == 40 or i == 50 or i == 60 or i == 70 or i == 80 or i == 90 or i == 100 or i == 200 or i == 300 or i == 400 or i == 500 or i == 600 or i == 700 or i == 800 or i == 900 or i == 1000: numberString += numberWord[i] else: if i > 100: numberStringInProgress += numberWord[huns] numberStringInProgress += andString if tens >= 20 or tens == 0: numberStringInProgress += numberWord[tens] numberStringInProgress += numberWord[ones] elif tens == 10: numberStringInProgress += numberWord[tens+ones] numberString += numberStringInProgress print("The length of all the numbers from 1 to 1000 (inclusive) written out in words is " + str(len(numberString)) + " letters.")