第十二問題是:通過將自然數生成Euler#12,我的Python程序出了什麼問題?
三角形號的序列。因此,第7個三角形數將是1 + 2 + 3 + 4 + 5 + 6 + 7 = 28.前十項將是:
1,3,6,10,15,21,28,36 ,45,55,...
讓我們列出前七個三角數的因素:
1:1 3:1,3 6:1,2,3,6- 10:1,2- ,5,10 15:1,3,5,15 21:1,3,7,21 28: 1,2,4,7,14,28我們可以看到28是第一個具有 的三角形數字五個因子。
第一個三角形數字的值超過五個 個百分比是多少?
我在Python 3.4
def Nfactor(n):
k=2
c=0
while k<=n:
if n%k==0:
n=n//k
c+=1
else:
k=k+1
return c
a=1
for i in range(10**6):
a+=i
if Nfactor(a)>=500:
print(a)
break
節目,我等了10多分鐘,永遠不會有答案。對於我自己而言,我的程序並不算太壞,必須在幾秒鐘內運行......好吧,這讓我瘋狂大聲笑,我沒有發現我的錯誤。
你能幫助我嗎?
預先感謝您!
編輯
我現在的解決辦法:
import math
def Nfactor(n):
if n==1:
return 1
else:
c=0
for i in range(1, int(math.sqrt(n)+1)):
if n%i==0:
c+=1
return c*2
a=0
for i in range(1,10**6):
a+=i
if Nfactor(a)>=500:
print(a)
break
我手頭上有一個素數列表,並用它來加速我的保理業務。我只從素數因子分解中得到了因素分解數和重構因子數。 – NightShadeQueen
所以我的代碼中沒有錯誤?我不會,我會等這麼哈哈。我有一個包含第一百萬個素數的文件,我會看看我能做些什麼。 –
因子數!=除數 –