26/03/2009
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)