Home > Project Euler, python > Problem Euler #19

Problem Euler #19

You are given the following information, but you may prefer to do some research for yourself.

    1 Jan 1900 was a Monday.
    Thirty days has September,
    April, June and November.
    All the rest have thirty-one,
    Saving February alone,
    Which has twenty-eight, rain or shine.
    And on leap years, twenty-nine.
    A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400.

How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?

Python:

import time
import datetime as date

ts = time.clock()

def how_much_sundays(y, z):
    count = 0
    for y in range(y, z + 1):
        for m in range(1, 13):
            for d in range(1, 32):
                try:
                    dobj = date.date(y, m, d)
                    day = dobj.weekday()
                    if day == 6 and d == 1:
                        count += 1
                except ValueError:
                    pass
    return count

if __name__ == '__main__':
    print how_much_sundays(1901, 2000)
    print time.clock() - ts
Categorie:Project Euler, python
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: