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


day12

---------------------------------------------------------------

实例019:完数

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

分析:如果能被a整除,那么a是因子,放入一个列表然后再求和,与原被除数相等,就是完数

1 for i in range(1,int(a)):
2     list = []
3     if i >1:
4         for j in range(1,i):
5             if i%j == 0:
6                 list.append(j)
7     if sum(list) ==i:
8         print(f"{i}是完数")

看看答案:

 1 def factor(num):
 2     //target=int(num)
 3     res=set()
 4     for i in range(1,num):
 5         if num%i==0:
 6             res.add(i)
 7             res.add(num/i)
 8     return res
 9 
10 for i in range(2,1001):
11     if i==sum(factor(i))-i:
12         print(i)

答案定义了一个返回某个数所有的因子的函数,再在函数外判断是否为完数,还是很好理解。我这个也可以不用列表再sum,直接定义一个求和的变量即可


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 【JAVA习题八】一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。 java基础:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数 【Python3练习题 014】 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。 编程题:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程     找出1000以内的所有完数。 一个数如果恰好等于它的因子之和,这个数就称为“完数。例如6=1+2+3.编程找出1000以内的所有完数。 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。 题目:如果一个数恰好等于它的因子之和,这个数就称为“完数”。例如:6=1+2+3,请找出1000以内的所有的完数。 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。 一个数如果恰好等于它的因子之和,这个数就称为“完数”例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM