## Remarks ## https://www.mathblog.dk/project-euler-44-smallest-pair-pentagonal-numbers/ ## https://radiusofcircle.blogspot.com/2016/06/problem-44-project-euler-solution-with-python.html ## http://radiusofcircle.blogspot.com ## Time Module for Calculating Execution Time import time ## Time At The Start of Program Execution dStartTime = time.time() def is_pentagonal(nInput): ## Function To Check If The Number is Pentagonal Number or Not if (1 + (24 * nInput + 1) ** 0.5) % 6 == 0: return True return False ## Flag To Check If The Number Is Found Or Not bFlag = True # While Loop Iterator nLoop = 1 # While Loop while bFlag: nNum_01 = nLoop * (3 * nLoop - 1) / 2 for nSubLoop in range(1, nLoop): nNum_02 = nSubLoop * (3 * nSubLoop - 1) / 2 if is_pentagonal(nNum_01 + nNum_02) and is_pentagonal(nNum_01 - nNum_02): print ("nLoop = " + str(nLoop) + ", nSubLoop = " + str(nSubLoop)) bFlag = False break nLoop = nLoop + 1 # Time At The End of Program Execution dEndTime = time.time() # Printing The Total Time For Execution print ("Time Needed: " + str(dEndTime - dStartTime)) ## Result ## nLoop = 2167, nSubLoop = 1020 ## Time Needed: 1.1174473762512207