#程序员兵兵#「每日一练」巧用python找出1000以内的所有完数


北京联盟_本文原题:「每日一练」巧用python找出1000以内的所有完数
"完数"指的是一个数恰巧等于它的所有因子之和 , 比如说6 , 它的因子分别是1 , 2 , 3 , 而6正好等于1+2+3 , 所以6就是完数!
下边我们就一起来看看python如何一下找出1000之内的所有"完数" , 瞬间就完成哦!
题目
一个数如果恰好等于它的因子之和 , 这个数就称为"完数" 。 例如6=1+2+3.编程找出1000以内的所有完数 。
代码
先上代码~
#程序员兵兵#「每日一练」巧用python找出1000以内的所有完数
本文插图

运行效果
#程序员兵兵#「每日一练」巧用python找出1000以内的所有完数
本文插图

题目详述
第一行:
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
第四行:
【#程序员兵兵#「每日一练」巧用python找出1000以内的所有完数】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 ————
#程序员兵兵#「每日一练」巧用python找出1000以内的所有完数
本文插图

觉得文章不错的 , 欢迎点在看和转发


    推荐阅读