标签:题目:一个数如果恰好等于它的因子之和 这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
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就是一个完全数,打印这个数字
本文出自 “学习笔记” 博客,请务必保留此出处http://netsyscode.blog.51cto.com/6965131/1747580
标签:题目:一个数如果恰好等于它的因子之和 这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
原文地址:http://netsyscode.blog.51cto.com/6965131/1747580