2013-10-23 72 views
0

我對編程完全陌生,今晚需要一些幫助。我有一個問題需要解決,我需要證明一個給定範圍的數字的哥德巴赫猜想。我需要確保數字是偶數,找出質數加起來的數字,打印出來並找出範圍內哪些數字具有最大數量的對。我的問題是波紋管:如何在嵌套的python循環中使用break命令?

for i in range (lower, upper + 1): 
    if (pairs > max_pairs): 
     max_pairs = pairs 
    # Check if Number is Even 
    if (i % 2 == 0): 
     prime1 = 0 
     prime2 = 0 
     pairs = 0 
     print (i, "=") 
     # Find Prime Numbers less than the Current Even Number 
     for x in range (2 , (i - 1)): 
      prime = is_prime (x) 
      if (prime == False): 
       break 
      prime1 = x 
      for n in range (2, (i - 1)): 
       prime = is_prime (n) 
       if (prime == False): 
        break 
       prime2 = n 
       if ((prime1 + prime2) == i): 
        prime_sum = True 
       else: 
        break 
       if (prime1 >= prime2): 
        prime3 = prime1 
        prime1 = prime2 
        prime2 = prime3 
       if (prime_sum == True): 
        print (prime1, "+", prime2) 
        pairs += 1 

我需要for循環與n重複,如果這兩個條件,如果不符合的一個,但破發我回去直到第X迴路。如果沒有結束我的程序,這兩個條件之一是錯誤的,我怎麼才能重複它?

+0

哪裏有什麼? –

+0

你有什麼問題? – justhalf

+0

感謝您添加代碼塊。我認爲我做得很對,但顯然我錯了。 –

回答

1

看起來你可能想用continue而不是break。如果在內部for循環中將break替換爲continue,那麼當素數爲Falseprime1+prime2 != i時,內部for循環將重新啓動。