當前位置:首頁 » 編程語言 » python完數

python完數

發布時間: 2022-10-09 01:06:44

❶ 找出1000以內的所有完數python

#求1000以內的完數
for i in range(1, 1001):
sum_list = []
for j in range(1, i):
if i % j:
continue
else:
sum_list.append(j)
if sum(sum_list) == i:
print("its factors are", sum_list)
print(i)
#------------------------------
its factors are [1, 2, 3]
6
its factors are [1, 2, 3, 4, 6, 8]
24
its factors are [1, 2, 4, 7, 14]
28
its factors are [1, 2, 4, 8, 16, 31, 62, 124, 248]
496

❷ 1000以內的完數有哪些

有三個,6、28、496。

第一個完全數是6,它有約數1、2、3、6,除去它本身6外,其餘3個數相加,1+2+3=6。

第二個完全數是28,它有約數1、2、4、7、14、28,除去它本身28外,其餘5個數相加,1+2+4+7+14=28。

第三個完全數是496,有約數1、2、4、8、16、31、62、124、248、496,除去其本身496外,其餘9個數相加,1+2+4+8+16+31+62+124+248=496。

推導公式:

大數學家歐拉曾推算出完全數的獲得公式:如果p是質數,且2^p-1也是質數,那麼(2^p-1)X2^(p-1)便是一個完全數。

例如p=2,是一個質數,2^p-1=3也是質數,(2^p-1)X2^(p-1)=3X2=6,是完全數。

例如p=3,是一個質數,2^p-1=7也是質數,(2^p-1)X2^(p-1)=7X4=28,是完全數。

例如p=5,是一個質數,2^p-1=31也是質數,(2^p-1)X2^(p-1)=31X16=496是完全數。

❸ 如何在python用函數求出2至100之間的完全數

a=range(1,101)

b=range(1,101)

result=[]

for i in a:

tmp=[]

for k in b:

if k<i:

if not i%k:

tmp.append(k)

else:

continue

else:

break

count=0

for m in tmp:

count=count+m

if count==i:

result.append(i)

else:

continue

print(result)

❹ python 8個完數 運算超時

在你的這個思路中,可以優化的主要就是幾方面:

1:求因數可以僅算到n的平方根q為止,對於n,每有一個小於q的因數,就有一個對應的大於q的因數,兩者之積為n。

2:在完數函數中已經完成了求因數的工作,不需要另做一次,直接在完數函數中拼裝結果即可。

3:目前來說,已知的完全數都是偶數,因此,最後那行那裡可以做num+=2優化,但數學上目前還沒有證明不存在奇完全數,這種做法從理論上來說是不嚴謹的。


實際上,當一個數比較大的時候,做因數分解是一個很費時的工作,要找更大的完數,需要更好的因數分解的方式。比如先求出所有的質因數,在使用這些質因數的組合來尋找非質因數。因為質因數必然是在質數表中,而質數表可以建立一次然後重復使用,相對一個個的試商就快得多了。

如果要進一步優化以尋找更大的完全數,那麼,就需要利用更多的關於完全數的規律了,比如,除6以外,其它的完全數都是9n+1,都是p^2*q……,這些優化在你這個框架下實現就比較麻煩。

總體來說,不解決因數分解的問題,主要就是上述三種優化了。

❺ Python 輸出完數

//僅供參考

❻ python顯示輸入數字之內的完全數

所謂完全數是指,如果一個數恰好等於它的因子之和,則稱該數為「完全數」,又稱完美數或完備數。
例如:第一個完全數是6,它有約數 1、 2、 3、 6,除去它本身6外,其餘3 個數相加,1+2+3=6。 第二個完全數是28,它有約數 1、 2、 4、 7、 14、 28,除去它本身28外,其餘5個數相加,1+2+4+7+14=28

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


a = []
for i in range(1, 1000):
s = 0
for j in range(1, i):
if i % j == 0 and j < i:
s += j
if s == i:
print(i)
a.append(i)
print("1000以內的完全數為: %s" % a)

運行結果如圖所示

❼ 用python語言編程完數就找1到1000怎麼做

#include<stdio.h>
int main()
{
int i,j,s;
for(i=2;i<=1000;i++)
{
s=1;
for(j=2;j<=i/2;j++)
if(i%j==0)s+=j;
if(s==i)printf("%d\n",i);
}
getch();
return 0;
}

❽ python編程 找完數

#!/usr/bin/envpython3.6

defyinzi(n):
return[iforiinrange(1,n)ifn%i==0]

defis_wanshu(n,yz=None):
yz=yzoryinzi(n)
returnsum(yz)==n

defmain():
m,n=input('Entertwointegers:').split()
foriinrange(int(m),int(n)+1):
yz=yinzi(i)
ifis_wanshu(i,yz):
print(f'{i}={"+".join(str(j)forjinyz)}')

if__name__=='__main__':
main()

❾ 例用python:一個整數如果恰好等於它的因子之和,這個整數就稱為「完數」。例如6=1+2+3.

1、首先在python軟體中,建立一個簡單的遞增整數字典序列,如下圖所示。

熱點內容
蘋果ipad瀏覽器沒有伺服器怎麼辦 發布:2024-12-22 00:32:52 瀏覽:679
linux操作系統是什麼系統 發布:2024-12-22 00:30:46 瀏覽:88
linux密碼忘了怎麼辦 發布:2024-12-22 00:24:44 瀏覽:257
崩壞學園2金立伺服器是什麼 發布:2024-12-22 00:23:25 瀏覽:585
杭州灣新區碧桂園海上傳奇 發布:2024-12-22 00:18:16 瀏覽:461
c讀取sql資料庫 發布:2024-12-22 00:18:10 瀏覽:136
中學編程課 發布:2024-12-22 00:17:24 瀏覽:641
壓縮餅干星系玩什麼陣容 發布:2024-12-22 00:17:22 瀏覽:348
什麼是密碼原語 發布:2024-12-22 00:17:22 瀏覽:114
存儲對齊 發布:2024-12-22 00:01:07 瀏覽:783