Ejemplo n.º 1
0
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))