Triangle, pentagonal, and hexagonal numbers are generated by the following formulae:
Triangle Tn=n(n+1)/2 1, 3, 6, 10, 15, ...
Pentagonal Pn=n(3n−1)/2 1, 5, 12, 22, 35, ...
Hexagonal Hn=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.
In [1]:
import math
def is_pentagonal(s):
n = (1 + math.sqrt(1 + 24*s))/6.0
return abs(n - math.floor(n)) < 10e-10
def is_hexagonal(s):
n = (1 + math.sqrt(1 + 8*s))/4.0
return abs(n - math.floor(n)) < 10e-10
for n in range(285,10**5):
p = (n*(n+1))/2
if is_pentagonal(p) and is_hexagonal(p):
print p