2017-08-28 86 views
0

我有一個代碼,我需要找到一個數字的主要因素。在發現主要因素後,我需要知道如何破解我的代碼,所以當它達到1.我剛剛開始使用python進行編碼,並且我還沒有和其他館藏一起使用familiair,所以我想知道是否可以製作一個只打破常規的Python代碼。 NUM達到1python打破嵌套循環與多個if功能

num = int(input("Give me a number:")) 
priemgetallen = [] 

for reeks in range(2, num+1): 
    print(reeks) 
    for priemgetal in range(2,reeks): 
     if reeks % priemgetal != 0: 
      print(priemgetal) 
      if num%priemgetal == 0: 
       print("This is the old num", num) 
       num = num/priemgetal 
       print("This is the new num", num) 
       priemgetallen.append(priemgetal) 
       if num > 1: 
        if num%priemgetal == 0: 
         print("This is the new num", num) 
         num = num/priemgetal 
         print("This is the old num", num) 
         priemgetallen.append(priemgetal) 
       else: 
        print(priemgetallen) 
        break 
      else: 
       print("Num stays old") 

print(priemgetallen) 
+0

就像break語句一樣,你可以返回你的語句。 –

回答

0

後實際具有if聲明任何金額並不重要,應立即停止,break將退出循環你,而不是if語句。

所以你只需要處理嵌套循環,我可以通過將你的代碼放入一個函數並使用return退出它來解決這個問題。就像這樣:

def compute_priemgetallen(num): 
    priemgetallen = [] 
    for reeks in range(2, num+1): 
     print(reeks) 
     for priemgetal in range(2,reeks): 
      if reeks % priemgetal != 0: 
       print(priemgetal) 
       if num%priemgetal == 0: 
        print("This is the old num", num) 
        num = num/priemgetal 
        print("This is the new num", num) 
        priemgetallen.append(priemgetal) 
        if num > 1: 
         if num%priemgetal == 0: 
          print("This is the new num", num) 
          num = num/priemgetal 
          print("This is the old num", num) 
          priemgetallen.append(priemgetal) 
        else: 
         return priemgetallen # here we break out of all loops 
       else: 
        print("Num stays old") 


num = int(input("Give me a number:")) 
print(compute_priemgetallen(num))