-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathp061.py
More file actions
47 lines (39 loc) · 1.42 KB
/
Copy pathp061.py
File metadata and controls
47 lines (39 loc) · 1.42 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
from itertools import permutations
def polygonal_generator(s):
"""
Source: Wikipedia
"""
def f(n):
return ((s-2)*n*(n-1))//2 + n
return f
def poly_fun():
d = {}
for k in range(3, 9):
d[k] = list(filter(lambda n: n < 10000 and n>= 1000, map(polygonal_generator(k), range(1000))))
return d
def same_end_start(a, b):
a, b = str(a), str(b)
if a[-2:] == b[:2]:
return True
else:
return False
if __name__ == "__main__":
poly_nums = poly_fun()
k1 = 3
for v1 in poly_nums[k1]:
for k2, k3, k4, k5, k6 in permutations(range(4, 9)):
for v2 in poly_nums[k2]:
if same_end_start(v1, v2):
for v3 in poly_nums[k3]:
if same_end_start(v2, v3):
for v4 in poly_nums[k4]:
if same_end_start(v3, v4):
for v5 in poly_nums[k5]:
if same_end_start(v4, v5):
for v6 in poly_nums[k6]:
if same_end_start(v5, v6) and same_end_start(v6, v1):
print(k1, k2, k3, k4, k5, k6)
l = [v1, v2, v3, v4, v5, v6]
print(v1, v2, v3, v4, v5, v6)
print(sum(l))
exit(1) # return can be used here if creating a solve()