Project Euler : solution au problème 25, en Python

Pas bu de café ce matin, donc je me réserve les problèmes réputés plus simples, histoire d'avoir quand même la satisfaction d'avancer. Quand on voit du PHP toute la matinée on a forcément envie de souffler un peu, c'est compréhensible ;)

Le problème 25 ressort notre ami Fibonacci et sa suite mondialement connue:

Fibo(1) = 1
Fibo(2) = 1
Fibo(n) = Fibo(n-1) + Fibo(n-2)

Le problème étant de trouver n tel que Fibo(n) soit un nombre de 1000 chiffre. A la grosse moulinette donc, mais c'est terriblement rapide quand même.

#! /usr/bin/env python

# 2009/03/26 - euler025.py
# Solution au Probleme 25 de Project Euler
# http://projecteuler.net/index.php?section=problems&id=25
# Jean Karim Bockstael - jkb@jkbockstael.be
def euler25(num):
    fibo1 = 1
    fibo2 = 1
    rank = 2
    while (len(str(fibo2)) < num):
        fibo1, fibo2 = fibo2, fibo1 + fibo2
        rank += 1
    return rank

print euler25(1000)

cc-by-nc | code (python) | project euler

<<< Project Euler : solution au problème 48, en Python (2009-03-29) | Project Euler : solution au problème 20, en Python (2009-03-25) >>>