python求完数的因子_「每日一练」巧用python找出1000以内的所有完数

原标题:「每日一练」巧用python找出1000以内的所有完数

"完数"指的是一个数恰巧等于它的所有因子之和,比如说6,它的因子分别是1,2,3,而6正好等于1+2+3,所以6就是完数!

下边我们就一起来看看python如何一下找出1000之内的所有"完数",瞬间就完成哦!

题目

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

代码

先上代码~

76accf279edb464c8bfbfbb41272fd69.jpeg

运行效果

8e0a29e68fa4417c99abb4cfd00fcbb3.jpeg

题目详述

第一行:

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 ————

a7115aee6fec450bb0fb7e8a04e34c20.jpeg

觉得文章不错的,欢迎点在看和转发返回搜狐,查看更多

责任编辑:

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值