Solution to Problem 45. Written in Python.
Problem: Triangle, pentagonal, and hexagonal numbers are generated by the following formulae:
Triangle T(n) = n(n+1)/2 1, 3, 6, 10, 15, ...
Pentagonal P(n) = n(3n−1)/2 1, 5, 12, 22, 35, ...
Hexagonal H(n) = n(2n−1) 1, 6, 15, 28, 45, ...
It can be verified that T285 = P165 = H143 = 40755.
Find the next triangle number that is also pentagonal and hexagonal.
t = lambda n: n * (n + 1) / 2
p = lambda n: n * (3 * n - 1) / 2
h = lambda n: n * (2 * n - 1)
end = 100000
p_list = [p(i) for i in range(1, end)]
h_list = [h(i) for i in range(1, end)]
for n in range(286, end):
ans = t(n)
if ans in p_list and ans in h_list:
print ans, (n, p_list.index(ans) + 1, h_list.index(ans) + 1)
break