Python/project_euler/problem_02/sol4.py
yolstatrisch 7b89d03dd7 Added an O(1) solution to problem 002 (#776)
* Added an O(1) solution to problem 002

* Removed comments from sol3.py that were accidentally added to sol4.py
2019-05-02 00:44:21 +08:00

14 lines
295 B
Python

import math
from decimal import *
getcontext().prec = 100
phi = (Decimal(5) ** Decimal(0.5) + 1) / Decimal(2)
n = Decimal(int(input()) - 1)
index = (math.floor(math.log(n * (phi + 2), phi) - 1) // 3) * 3 + 2
num = round(phi ** Decimal(index + 1)) / (phi + 2)
sum = num // 2
print(int(sum))