04/01/2009
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)