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

Allez, un dernier avant de passer à minuit, comme ça on dira que j'en ai fait cinq aujourd'hui. Une (double) solution au problème 5, en Python.

! /usr/bin/env python

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

def euler5_brute(n):
    scm = n + 1
    while True:
        scm = scm + 1
        for i in range(1, n + 1):
            if scm % i != 0:
                break
        if i == n:
            return scm

def euler5_nice(n):
    base = range(1, n+1)
    work = range(1, n+1)
    done = False
    while done == False:
        smallest = min(work)
        for i in range(0, n):
            if work[i] == smallest:
                work[i] = work[i] + base[i]
        done = min(work) == max(work)
    return work[0]

def euler5(n):
    return euler5_nice(n)

print euler5(20)

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

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