Project Euler : Solution au problème 3, en Python

Toujours dans la lancée, une solution au problème 3, en Python. D'ailleurs avec un algorithme infiniment plus performant que ma version C tiens. Comme quoi c'est pas du temps perdu de revenir sur sa copie. On y gagne en humilité :-)

#! /usr/bin/env python

# 2009/01/04 - euler3.py
# Solution au Probleme 3 de Project Euler
# http://projecteuler.net/index.php?section=problems&id=3
# Jean Karim Bockstael - jkb@jkbockstael.be

def euler3(n):
        factors = []
        cand = 2
        while cand ** 2 <= n:
            if n % cand == 0:
                factors.append(cand)
                n = n / cand
            else:
                cand = cand + 1
        if n != 1:
            factors.append(n)
        if factors == []:
            return 1
        else:
            return factors[len(factors)-1]

print euler3(600851475143)

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

<<< Project Euler : Solution au problème 1, en Python (2009-01-04) | Project Euler : Solution au problème 2, en Python (2009-01-04) >>>