def createNumbers(f, polygonal): return [(str(i), polygonal) for i in list(generateFromLambda(f, 159)) if 999 < i and i < 10000]
def testGenerateFromLambdaTriangle(self): self.assertEqual(21, list(generateFromLambda(lambda n: n * (n + 1) // 2, 20))[5])
def testGenerateFromLambdaPentagonal(self): self.assertEqual(22, list(generateFromLambda(lambda n: n * (3 * n - 1) // 2, 20))[3])
''' 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. ''' from utilities.specialNumbers import generateFromLambda if __name__ == '__main__': pentas = set(list(generateFromLambda(lambda n: n * (3 * n - 1) // 2, 100000))) hexas = set(list(generateFromLambda(lambda n: n * (2 * n - 1), 100000))) print([i for i in pentas if i in hexas]) # pentas = set(list(generateFromLambda(lambda n: n*(3n-1)//2))