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?

In [3]:
def fib_gen():
    index = 1
    cur = 1
    past = 0
    while True:
        yield [index,cur]  
        old = cur
        cur = cur + past
        past = old
        index +=1
      
In [ ]:
 
In [ ]:
 
In [13]:
def solve25():
    solved = False
    s = fib_gen()
    while not solved:
        current_fib = next(s)
        digits = len(str(current_fib[1]))
        if digits>999:
            print current_fib[0]
#             solved = True
            break
In [14]:
solve25()
4782
In [ ]: