''' 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. ''' # Observe that every other triangle number is also a hexagonal number, so the 1st, the 3rd, 5th, etc. # So we only need to check all the uneven n triangle numbers to be pentagonal # In addition, we can check if a number is pentagonal by checking if sqrt(1 + 24 n) % 6 == 5 import math def t(n): return n * (n+1) / 2 def isPentagonal(x): return math.sqrt(1 + 24 * x) % 6 == 5 def main(): print("Hello this is Patrick") n = 287 while not isPentagonal(t(n)): n += 2 print(t(n)) if __name__ == "__main__": main()