Project Euler

Problem #25

The Fibonacci sequence is defined by the recurrence relation:

F_(n) = F_(n−1) + F_(n−2), where F_(1) = 1 and F_(2) = 1.

Hence the first 12 terms will be:

F_(1) = 1
F_(2) = 1
F_(3) = 2
F_(4) = 3
F_(5) = 5
F_(6) = 8
F_(7) = 13
F_(8) = 21
F_(9) = 34
F_(10) = 55
F_(11) = 89
F_(12) = 144

The 12th term, F_(12), is the first term to contain three digits.

What is the first term in the Fibonacci sequence to contain 1000 digits?

Clojure: Running time = 3.58s
+;fibo

(defn p25 []
  (println
    (count (take-while #(< (count (str %)) 1000) (fibo)))
  )
)

Erlang: Running time = 0.13s
+%pow

p25()->io:format("~w~n",[p25(0,1,pow(10,999),1)]).
p25(_,B,Limit,I) when B >= Limit ->I;
p25(A,B,Limit,I)->p25(B,A+B,Limit,I+1).

Ruby: Running time = 0.032s
def p25
  limit=10**999
  a,b,i=0,1,1
  a,b,i=b,a+b,i+1 while b<limit
  puts i
end