#Counting Sundays #Problem 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)? # # let's encode sunday 0 - mon 1 ... # 1 Jan 1901 a = 365 #1900 is not a leap year a += 1 #1 jan is monday a %= 7 #the day of 1 jan 1901 c = 0 #count of months for which sundays fell on march. m = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ] for i in range( 1901, 2001 ): for j in range( 1, 13 ): if a==0: c += 1 a += m[j-1] if j==2 and i%4==0: a += 1 a %= 7 print(c)