##Pentagonal numbers are generated by the formula, Pn=n(3n1)/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 is pentagonal and D = |Pk  Pj| is minimised; what is the value
##of D?
import math


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


def ispentagonal(n):
    return (1 + math.sqrt(24 * n + 1)) % 6 == 0


def fi():
    v = [1]
    for i in range(2, 100000):
        if i % 500 == 0:
            print(i)
        v.append(p(i))
        for j in range(i, 0, -1):
            m = v[i - 1] + v[j - 1]
            if ispentagonal(m):
                if ispentagonal(m + v[i - 1]):
                    return v[j - 1]
                if ispentagonal(m + v[j - 1]):
                    return v[i - 1]


print(fi())
