编程语言入门经典100例python版-【python】编程语言入门经典100例--19

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

代码:

2

3 for i in range(1,1001):

4 s = 0

5 for j in range(1,i):

6 if i%j == 0:

7 s += j

8 if s == i:

9 print(i)

运行结果:

[root@HK code_100]# python code_19.py

6

28

496

[root@HK code_100]#

代码解释:

2

3 for i in range(1,1001): #遍历1到1000所有的数字

4 s = 0 #将约数的和置0,这个赋值不能在for之外,外层for每循环一次,重置一次

5 for j in range(1,i): #遍历1到(i-1)之间所有的数字,最后一个数字是出去i本身的之前的数字,约数从这些数字中取

6 if i%j == 0: #将i和j进行取余操作,取余为0的是i的约数

7 s += j #将约数j累加,和为s

8 if s == i: #如果和与i相等(这个if语句要放在内层for循环之外,否则约数的和会相加的不完全,比如24这个数字,必须要约数全部相加完毕再与i比较相等)

9 print(i) #这个i就是一个完全数,打印这个数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值