30/03/2009

Project Euler : solution au problème 19, en Python

On dira ce qu'on voudra, finalement résoudre les problèmes dans le désordre ça fait quand même un peu négligé; et les résoudre en commençant par les plus faciles ça fait un peu tire-au-flanc. Donc je reprends dans l'ordre là où j'avais arrêté: au problème 19.

La question est simple: combien de 1er du mois étaient un dimanche, pendant le vingtième siècle?

La solution est simple, si on a le bon sens de laisser les complications de calcul de date aux librairies bien faites. Ricanez, mais un bon programmeur doit savoir ne pas réinventer la roue, non? :-)

#! /usr/bin/env python

# 2009/03/30 - euler019.py
# Solution au Probleme 19 de Project Euler
# http://projecteuler.net/index.php?section=problems&id=19
# Jean Karim Bockstael - jkb@jkbockstael.be
from datetime import *

def euler19(beginyear, endyear):
    count = 0
    for year in range(beginyear, endyear + 1):
        for month in range (1, 13):
            if date(year, month, 1).weekday() == 6:
                count += 1
    return count
    
print euler19(1901, 2000)

Tags:

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


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