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