"""@package Problem
    
    Project Eular - Problem 44

    Pentagonal numbers are generated by the formula, Pn=n(3n-1)/2. The first ten pentagonal numbers are:

1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ...

It can be seen that P4 + P7 = 22 + 70 = 92 = P8. However, their difference, 70 - 22 = 48, is not pentagonal.

Find the pair of pentagonal numbers, Pj and Pk, for which their sum and difference are pentagonal and D = |Pk - Pj| is minimised; what is the value of D?
    
    @author Shane Auckland <shane.auckland@gmail.com>
    
"""
import itertools

pentagonals = []

def getPentagonal(n):
    return n*(((3*n)-1))/2;

def isPentagonal(n):
    return n in pentagonals

for p in range(1, 5000):
    pentagonals.append(getPentagonal(p))

print pentagonals

for c in itertools.combinations(pentagonals, 2):
    if isPentagonal(c[0] + c[1]) and isPentagonal(c[1] - c[0]):
        print c[0]-c[1]
        break
else:
    print 'not found'

