我想解決歐拉項目的問題12。第一個三角形數字的值超過500個因數是多少? (第7個三角形數將是1 + 2 + 3 + 4 + 5 + 6 + 7 = 28)。這是我的代碼,但速度不夠快。 你有沒有優化技巧?優化幫助找到最大因數
n=0
a=0
list=[]
maxcount=0
while True:
n+=1
a+=n
count=0
for x in range(1,int(a+1)):
if a%x==0:
count+=1
if count>maxcount:
maxcount=count
print a, "has", maxcount, "dividors"
謝謝!
只能檢查除數到sqrt的數字。節省數百萬的支票 – Justin