2013-10-23 37 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循环将重新启动。