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