A41810. 试题 C: 完全日期【问题描述】如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。例如:2021 年 6 月 5 日的各位数字之和为 2 + 0 + 2 + 1 + 6 + 5 = 16,而16 是一个完全平方数,它是 4 的平方。所以 2021 年 6 月 5 日是一个完全期。例如:2021 年 6 月 23 日的各位数字之和为 2 + 0 + 2 + 1 + 6 + 2 +…
填空题
困难
知识点
题目描述
试题 C: 完全日期
【问题描述】
如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。
例如:2021 年 6 月 5 日的各位数字之和为 2 + 0 + 2 + 1 + 6 + 5 = 16,而
16 是一个完全平方数,它是 4 的平方。所以 2021 年 6 月 5 日是一个完全期。
例如:2021 年 6 月 23 日的各位数字之和为 2 + 0 + 2 + 1 + 6 + 2 + 3 = 16,
是一个完全平方数。所以 2021 年 6 月 23 日也是一个完全日期。请问,从 2001 年 1 月 1 日到 2021 年 12 月 31 日中,一共有多少个完全日期?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
参考答案
from datetime import *
from math import *
a=date(2001,1,1)
b=date(2021,12,31)
gap=timedelta(days=1)
#求每个数位的和
def cul(n):
summ=0
nn=str(n)
for i in nn:
summ+=int(i)
return summ
#判断是否为完全平方数
def judge(mm):
x=sqrt(mm)
y=int(sqrt(mm))
if x==y:
return 1
return 0
ans=0
while a!=b:
a=a+gap
year=a.year
month=a.month
day=a.day
#和
summm=cul(year)+cul(month)+cul(day)
#print(a)
#print(summm)
if judge(summm):
ans+=1
print(a)
print(ans)
上一题
下一题