一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程,找出10000之内的所有完数,将其存入一个列表里
python列表解析 双重for循环+条件判断
- # n=6 求因子
- # for i in range(1, n):
- # if n % i == 0:
- # print(i)
- for i in range(2,10001):
- sum = 0
- for j in range(1,i):
- if i%j==0:
- # print(i)
- sum+=j
- if (sum==i):
- list1.append(i)
- print(list1)
尝试以列表解析的方式生成结果列表
判断写成一个函数在列表调用
- def wdyinzi(i):
- sum=0
- for j in range(1, i):
- if i % j == 0:
- # print(i)
- sum += j
- if(sum==i):
- return i
- list2=[i for i in range(2,10001) if wdyinzi(i)]
- print(list2)