Back to Project Euler

Previous Problem Next Problem

Problem 19: Counting Sundays

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

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

Solution

You could easily write a program that advanced through the months and added their lengths to a running total modulo seven of days, or perhaps took the century year by year. Even though it's slower when scaled up, however, I think it's a more interesting approach to make use of library functions for this task. Python has a datetime module which can find the weekday of any calendar day we feed it.

Python Code

import datetime
def p19(firstyear=1901, lastyear=2000):
	res = 0
	for year in range(firstyear, lastyear + 1):
		for month in range(1, 13):
			if datetime.date(year, month, 1).weekday() == 6:
				res += 1
	return res

Previous Problem Next Problem

Back to Project Euler