概述
今天主要分享下python的一个完数实例,一起来看看吧~
需求
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
思路:将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其本身。
java实现:
package a;
public class Wanshu {
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++)
{
int sum=0;
for (int j = 1; j < i; j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(i==sum)
{
System.out.println(i);
}
}
}
}
python实现:
#!/usr/bin/python
#需求:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
#思路:将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其本身。
def factor(num):
target=int(num)
res=set()
for i in range(1,num):
if num%i==0:
res.add(i)
res.add(num/i)
return res
for i in range(2,1001):
if i==sum(factor(i))-i:
print(i)
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~