euler_042.py1linkimport string
2link
3linkdef is_triangular(x):
4link if (((8*x) + 1)**0.5) % 1 == 0:
5link return True
6link else:
7link return False
8link
9linkdef word_to_number(word):
10link alphabet = list(string.ascii_lowercase)
11link
12link sum_of_positions = 0
13link for w in word:
14link position = alphabet.index(w.lower()) + 1
15link sum_of_positions += position
16link
17link return sum_of_positions
18link
19linkwith open("p042_words.txt", 'r') as f:
20link words = f.read().replace('"', '')
21link
22linktriangle_count = 0
23linkfor w in words.split(","):
24link value = word_to_number(w)
25link if is_triangular(value):
26link triangle_count += 1