mu chance or much chance ?

日々の戯れ言

Project Euler 19

  • 問題

Problem 19:Counting Sundays
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)?

  • 解答例
def zeller(year, month, day):
    if(month < 3):
        year -= 1
        month += 12
    return (year + year // 4 - year // 100 + year // 400 + (13 * month + 8 ) // 5 + day) % 7

count = 0
for i in range(1901, 2001):
    for j in range(1, 13):
        if zeller(i, j, 1) == 0:
            count += 1

print(count)