题目详述
第一行:
for j in range(2, 1001):
创建一个从2到1000的循环,并且将其中的值依次赋值给j
第二行:
s = j
创建一个新的变量s,让它等于j,方便后边的计算,可能有的小伙伴会说,不是已经有了一个变量j,这不是多此一举吗,主要是j在后边的循环中还要一直用到,而s则作为一个变量往下进行传递
第三行:
for i in range(1, j):
创建一个从1到j-1的循环,并且依次赋值给i
第四行:
if j % i == 0:
如果j能够整除i,则说明i就是j的一个因子
第五行:
s -= i
用s减去j的因子i,等到i完成所有的遍历,相当于s减去了j的所有因子
第六行:
if s == 0:
print(j)
如果s等于0,说明s减去j的所有因子值为0,也就是j等于它的所有因子之和,j就是完数,输出j,遍历完成,就输出了所有满足条件的完数
进阶:
利用这个原理我们可以轻松的去判断某个数,并根据我们的条件取数
是不是很便捷呢
结束语
总体来说思路只要有了,以后遇到类似的问题就可以解决了,是不是发现原来Python也没有想象中的那么难!
———— e n d ————
觉得文章不错的,欢迎点在看和转发