03.07 面試官:如何用python找出1000以內的所有完數

概述

今天主要分享下python的一個完數實例,一起來看看吧~


需求

一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。

思路:將每一對因子加進集合,在這個過程中已經自動去重。最後的結果要求不計算其本身。



java實現:

<code>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);
}
}
}
}/<code>



python實現:

<code>#!/usr/bin/python
#需求:一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。
#思路:將每一對因子加進集合,在這個過程中已經自動去重。最後的結果要求不計算其本身。

def factor(num):
\ttarget=int(num)
\tres=set()
\tfor i in range(1,num):
\t\tif num%i==0:
\t\t\tres.add(i)
\t\t\tres.add(num/i)
\t\treturn res

for i in range(2,1001):
\tif i==sum(factor(i))-i:
\t\tprint(i)/<code>
面試官:如何用python找出1000以內的所有完數



覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~


面試官:如何用python找出1000以內的所有完數


分享到:


相關文章: