Move Project Euler under puzzles.
This commit is contained in:
37
puzzles/project_euler/p019_CountingSundays.py
Normal file
37
puzzles/project_euler/p019_CountingSundays.py
Normal file
@@ -0,0 +1,37 @@
|
||||
#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)
|
||||
|
||||
Reference in New Issue
Block a user