##题目
- 任意输入一个年月日,求得并输出这天是该年的第几天?
- 任意输入一个正整数,逆序输出,求得并输出它是一个几位数?
- 输出10000以内所有的完全数,(所谓完全数是指:它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。)
##涉及的知识解析
- 第一题涉及到了平年和闰年的有关知识
闰年 通常的解释是说一年有多少天多少小时多少分钟,取整数365天后,还有多余的,累积达到一天(24小时)后,就多加一天,多加一天的这一年就是闰年。这个解释只是告诉大家怎么计算,是人为设置的东西。
最根本的原因是:地球绕太阳运行的周期为365天5小时48分46秒(合365.24219天),即一回归年(tropical year)。公历的平年只有365天,比回归年短约0.2422天,所余下的时间约为每四年累积一天,故在第四年的2月末加1天,使当年的时间长度变为366天,这一年就是闰年。现行公历中每400年有97个闰年。按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样,每128年就会多算出1天,经过400年就会多算出3天多。因此,每400年中要减少3个闰年。所以公历规定:年份是整百数时,必须是400的倍数才是闰年;不是400的倍数的世纪年,即使是4的倍数也不是闰年。
这就是通常说的:四年一闰,百年不闰,四百年再闰。例如:2000年是闰年,2100年则是平年。
-
无
-
因数 约数,又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。在大学之前,"约数"一词所指的一般只限于正约数。约数和倍数都是二元关系的概念,不能孤立地说某个整数是约数或倍数。一个整数的约数是有限的。同时,它可以在特定情况下成为公约数。
##代码
-
year=int(input("请输入年份:\n")) month=int(input("请输入月份:\n")) day=int(input("请输入日:\n")) rlist=[31,29,31,30,31.30,31,31,30,31,30,31] plist=[31,28,31,30,31.30,31,31,30,31,30,31] sday=0 if (year % 4 ==0 and year % 100 != 0) or year %400 == 0: for i in range(month): sday+=rlist[i] else: for i in range(month): sday+=plist[i] print("这天是%d的第%d"%(year,sday))
-
n_list=input("请输入一个正整数:") n=0 for i in n_list: n+=1 print(n_list[::-1]) print('输入的是一个%d位数:'%n)
-
a=[] for i in range(2,1000): for j in range(1,i): if i % j == 0: a.append(j) if sum(a) == i: print(f"{i}是完全数,因子包括{a}")#f是格式化字符串的 a.clear()