码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-03-04 16:33:39      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:题目:一个数如果恰好等于它的因子之和   这个数就称为“完数”。例如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

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

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

原文地址:http://netsyscode.blog.51cto.com/6965131/1747580

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!