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)

Tags:

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


Project Euler : solution au problème 48, en Python (29/03/2009)Project Euler : solution au problème 20, en Python (25/03/2009)