Project Euler Problem 045

# Statement

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 $T_{285} = P_{165} = H_{143} = 40755$.

Find the next triangle number that is also pentagonal and hexagonal.

# Solution

In this case we know that the hexagonal is the function that grows faster so we increase

that. Then we increase the others until they equal or pass the obtained value. If the 3 values

aren't equal, we repeat the process.

if __name__ == '__main__': iT = 286 iP = 166 iH = 144 t = iT * (iT + 1) // 2 p = iP * (3 * iP - 1) // 2 h = iH * (2 * iH - 1) while h != t or t != p: h = iH * (2 * iH - 1) iH += 1 while t < h: t = iT * (iT + 1) // 2 iT += 1 while p < h: p = iP * (3 * iP - 1) // 2 iP += 1 print("The result is:", h)

The Python file is available for download here.