和数,也即其所有因数的加总正好等于其本身。
比如说:6=1+2+3。
掌握了这个规律之后,我们首先来对其进行一下分析:我们首先需要定义一个范围,比如1000以内所有的和数是多少,然后通过for循环遍历这个范围内所有的数,通过遍历的数逐个和其因子进行求余,将其因子放入至一个列表当中,最后再将列表当中的因子相加求和判断是否是其和数本身即可。
def f(n): # 定义一个函数f(n)
list = [] # 同时创建一个空列表
for i in range(1,n+1): # 将判断完数的范围值赋值给i
for j in range(1,i): # 将所有符合条件的因子赋值给j,其中j的范围不会超过i.
if i%j==0: # 条件判断,遍历i中的数,并且用其遍历的数对其因子j求余,如果余数为0 则表示其为和数因子
list.append(j) # 将和数因子加入到列表当中
if sum(list) == i: # 对列表中,和数的因子进行判断
print(i) # 并打印出和数
list = [] # 用空列表接收和数因子的值
if __name__ == '__main__': # 对函数进行封装
n = int(input("请输入最大范围数字:"))
f(n) # 将输入值回传给上面的函数f(n)
当然了,除了上述的方法之外,我们还有一个更加简单的方法,具体如下:
def f(n): # 我们定义一个函数f(n)