def main(): """Main program.""" answer = 10**10 start_time = time.time() index_n = 1 while True: index_n += 1 p_number_1 = fn.get_pentagonal_number(index_n) for index_b in range(index_n - 1, 0, -1): p_number_2 = fn.get_pentagonal_number(index_b) diff_p = abs(p_number_1 - p_number_2) if fn.is_pentagonal(diff_p): sum_p = p_number_1 + p_number_2 if fn.is_pentagonal(sum_p): answer = min(answer, diff_p) break if answer < 10**10: break end_time = time.time() print("The answer is %d" % answer) print("%f seconds elapsed." % (end_time - start_time)) import pyperclip pyperclip.copy(str(answer)) print("The answer has been placed in the clipboard.")
def test_get_pentagonal_number(self): """Test get_pentagonal_number()""" p_numbers = [0, 1, 5, 12, 22, 35, 51, 70, 92, 117, 145] for index, expected in enumerate(p_numbers): self.assertEqual(expected, fn.get_pentagonal_number(index))