aboutsummaryrefslogtreecommitdiff
path: root/challenge-147/lubos-kolouch/python/ch-2.py
blob: bd1577bd45f4b77a4063390dd6e97a5934fda0b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import math


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


def pentagonal_numbers():
    index = 1
    pentagonal_nums = []
    while True:
        pentagonal_num = index * (3 * index - 1) // 2
        pentagonal_nums.append(pentagonal_num)
        for j in range(index - 1, 0, -1):
            if is_pentagonal(pentagonal_num - pentagonal_nums[j - 1]) and is_pentagonal(
                pentagonal_num + pentagonal_nums[j - 1]
            ):
                return pentagonal_nums[j - 1], pentagonal_num
        index += 1


pair = pentagonal_numbers()
print(f"Pair of Pentagon Numbers: {pair[0]}, {pair[1]}")