Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- di = {} # Memoization
- def cal_pentagonal(n):
- '''Calculate the pentagonal number'''
- if di.get(n):
- return di[n]
- else:
- result = (n * (3 * n - 1)) / 2
- di[n] = result
- return result
- def is_pentagonal_number(x):
- n = (math.sqrt(x * 24 + 1) + 1) / 6
- return int(n) if n.is_integer() else False
- def main():
- i = 1
- while True:
- i += 1
- l = cal_pentagonal(i)
- for k, v in di.items():
- if is_pentagonal_number(sum((l, v))) and is_pentagonal_number(abs(l - v)):
- return(i, k)
- if __name__ == '__main__':
- main()
- # (2167, 1020)
- # CPU times: user 1.71 s, sys: 0 ns, total: 1.71 s
- # Wall time: 1.71 s
- # ==>> 5482660
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement