找到1000以內的完數 利用python實現
題目:乙個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如,6 的因子為1、 2、3,而6=1+2+3,因此6 是完數。程式設計,找出1000 之內的所有完數,並輸出該完數及對應的因子。
方法一:
ls =
for i in
range(1
,1001):
for j in
range(1
,i):
if i % j ==0:
ifsum
(ls)
== i:
print
("{}是完數,其因子包括{}"
.format
(i,ls)
) ls.clear(
)
執行結果
方法一:實測8行**,第一次遍歷1-1000,j 遍歷1-i,用於作為j 的除數,如果i / j的餘數為零,則表示它是i 的因數,新增到列表中,然後利用python中方便的sum函式進行判斷,輕鬆解決這個問題。
方法二:
m=
1000
for a in
range(2
,m+1):
s = a
l1=for i in
range(1
, a)
:if a%i ==0:
s -= i
if s ==0:
print
("完數:%d,因子包括:"
%a,end="")
for j in
range(0
,len
(l1)):
print
("%d"
% l1[j]
, end=
",")
print
()
執行結果
方法二與方法一思路大致相同,不同在於,s-因數,若為0,則代表該數是完數。
找1000以內的完數
完數,是一些特殊的自然數,它所有的真因子 即除了自身以外的因子 的和,恰好等於它本身。所以這裡說明一下,1不是完數,因為1只有自身這乙個因子 第乙個完全數是6,第二個完全數是28,第三個完全數是496,後面的完全數還有8128 33550336等等。所以程式迴圈直接從數字2開始判斷 及執行結果如下 ...
如何找出 1000 以內的 完數
如果乙個數恰好等於它的因子之和,那麼這個數就被稱為 完數 如 6 1 2 3。程式設計找出 1000 以內的所有 完數 外層迴圈 998 次,每次迴圈得到的 i 傳入下個迴圈內,內部迴圈求解出符合 i 整除 k 等於 0 的數,如果能夠整除,那麼說明 k 是 i 的乙個因子,則用 sum 累加,直到...
程式設計找出1000以內的所有完數
關鍵檔案 homework2.cpp 定義控制台應用程式的入口點。程式設計找出1000以內的所有完數 注1 乙個數如果恰好等於它的因子之和,這個數就稱為 完數 例如6 1 2 3.注2 因子即是約數,即可以整除這個數的數 注3 完全數 perfect number 又稱完美數或完備數,是一些特殊的自...