题号:3495
问题描述
记一个日期为yy年mm月 dd 日,统计从 2000年1月1日(含)到2000000年1月1日(含),有多少个日期满足年份yy是月份 mm的倍数,同时也是 dd 的倍数。 当年份是 4 的倍数而不是 100 的倍数或者年份是 400 的倍数时,这一年是闰年,其他的年份都不是闰年。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码:
def leap(x): # 定义一个函数,用来判断闰年
return x % 400 == 0 or x % 4 == 0 and x % 100 != 0
n = 0
day = [31,28,31,30,31,30,31,31,30,31,30,31] # 每月多少天
for i in range(2000, 2000000): # 年
if leap(i) == 1:
day[1] = 29
else:
day[1] = 28
for j in range(1, 13): # 月
for k in range(1, day[j-1] + 1): # 日
# 判断是否满足年份yy是月份 mm的倍数,同时也是 dd 的倍数
if (i % j == 0) and (i % k == 0):
n += 1
n += 1 # 还有20000000.1.1这个日期,所以循环完最后在加1
print(n) # 输出35813063