测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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)
上一题 下一题