-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheuler_17.py
More file actions
53 lines (47 loc) · 1.7 KB
/
Copy patheuler_17.py
File metadata and controls
53 lines (47 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
def word_form(number):
"""word_form(number) -> string
Returns the word form of the number.
>>> word_form(32)
'thirty-two'
>>> word_form(123)
'one hundred twenty-three'
The highest number it is capable of converting is:
999,999,999,999,999,999,999,999,999,999,999"""
ones = ("", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine")
tens = ("", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety")
teens = ("ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen")
levels = ("", "thousand", "million", "billion", "trillion", "quadrillion", "quintillion", "sextillion", "septillion", "octillion", "nonillion")
word = ""
#number will now be the reverse of the string form of itself.
num = reversed(str(number))
number = ""
for x in num:
number += x
del num
if len(number) % 3 == 1: number += "0"
x = 0
for digit in number:
if x % 3 == 0:
word = levels[x / 3] + ", " + word
n = int(digit)
elif x % 3 == 1:
if digit == "1":
num = teens[n]
else:
num = tens[int(digit)]
if n:
if num:
num += ones[n]
else:
num = ones[n]
word = num + word
elif x % 3 == 2:
if digit != "0":
word = ones[int(digit)] + "hundredand" + word
x += 1
return word.strip(", ")
def euler(number):
letter_length = 0
for i in range(1, number+1):
letter_length += len(word_form(i))
return letter_length