-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path25.py
More file actions
46 lines (37 loc) · 762 Bytes
/
Copy path25.py
File metadata and controls
46 lines (37 loc) · 762 Bytes
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
The Fibonacci sequence is defined by the recurrence relation:
Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1.
Hence the first 12 terms will be:
F1 = 1
F2 = 1
F3 = 2
F4 = 3
F5 = 5
F6 = 8
F7 = 13
F8 = 21
F9 = 34
F10 = 55
F11 = 89
F12 = 144
The 12th term, F12, is the first term to contain three digits.
What is the index of the first term in the Fibonacci sequence to contain
1000 digits?
"""
from itertools import takewhile
def main():
print(solve(1000))
def solve(number):
fib_gen = fib()
return sum(1 for i in
takewhile(lambda x: len(str(x)) < number, fib())
) + 1
def fib():
a = b = 1
yield a
yield b
while True:
a, b = b, a + b
yield b
if __name__ == "__main__":
main()