2015-10-14 14 views
0

我在Python中創建一個程序,加起來總的所有主要numbrs高達10到目前爲止我的代碼是:Python的 - 素數

total = 0 

for i in range (10): 
    for a in range (2,i): 
     if i % a == 0: 
      break 
     else: 
      total += i 
      break 

print total 

我的代碼不包括2作爲主要數量但包括9.可以有人發現錯誤?

+3

'a'永遠不會超過2個,因爲你總是立刻崩潰。 – interjay

+0

您應該使用continue而不是break –

+0

請參閱下面的答案,我相信這只是一個縮進錯誤。 – AChampion

回答

2

您的else:子句需要使用for循環而不是if語句並且沒有break
通過當即指出2滴,這是完全沒有問題,因爲它是素數,則執行else條款:

total = 0 
for num in range(2, 10):  # Start from 2 
    for i in range(2, num): 
     if num%i==0: 
      break    # Not prime, break causes else clause not to be executed 
    else: 
     total += num 
print total 
17 

對於非常低的數字,這將是很好,但你真的只需要檢查的數量的sqrt