-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEuler017.py
More file actions
66 lines (58 loc) · 1.73 KB
/
Euler017.py
File metadata and controls
66 lines (58 loc) · 1.73 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
54
55
56
57
58
59
60
61
62
63
64
65
66
import time
onesSpelling=dict()
onesSpelling[1]="one"
onesSpelling[2]="two"
onesSpelling[3]="three"
onesSpelling[4]="four"
onesSpelling[5]="five"
onesSpelling[6]="six"
onesSpelling[7]="seven"
onesSpelling[8]="eight"
onesSpelling[9]="nine"
teenSpelling=dict()
teenSpelling[10]="ten"
teenSpelling[11]="eleven"
teenSpelling[12]="twelve"
teenSpelling[13]="thirteen"
teenSpelling[14]="fourteen"
teenSpelling[15]="fifteen"
teenSpelling[16]="sixteen"
teenSpelling[17]="seventeen"
teenSpelling[18]="eighteen"
teenSpelling[19]="nineteen"
tensSpelling=dict()
tensSpelling[2]="twenty"
tensSpelling[3]="thirty"
tensSpelling[4]="forty"
tensSpelling[5]="fifty"
tensSpelling[6]="sixty"
tensSpelling[7]="seventy"
tensSpelling[8]="eighty"
tensSpelling[9]="ninety"
def parseNumber(number):
result = ""
numStr = str(number)
if number>=1000000:
result = parseNumber(int(numStr[:len(numStr)-6])) + " million " + parseNumber(int(numStr[-6:]))
elif number>=1000:
result = parseNumber(int(numStr[:len(numStr)-3])) + " thousand " + parseNumber(int(numStr[-3:]))
elif number>=100:
result = parseNumber(int(numStr[0])) + " hundred"
if int(numStr[-2:]) > 0:
result += " and " + parseNumber(int(numStr[-2:]))
elif number>=20:
result = tensSpelling[int(numStr[0])]
if int(numStr[1])>0:
result += " "+ parseNumber(int(numStr[1]))
elif number>=10:
result = teenSpelling[int(number)]
elif number>0:
result = onesSpelling[int(number)]
return result
sumVal = 0
cutOff = 1000
for i in range(1,cutOff + 1):
text = parseNumber(i)
print(text)
sumVal += len(text.replace(" ",""))
print(sumVal)