2016-09-22 54 views
0

我對Python相對來說比較新。現在,我知道有很多更好的用於總理分解的程序,但我試圖在沒有任何幫助的情況下編寫代碼並卡住了。下面是代碼:以下用於素分解的Python程序不起作用

def is_prime(n): 
    i =2 
    while i<n: 
     if n%i==0: 
      return False 
     i+=1 
    return True 
def prime_factor(n): 
    b = n 
    factor=[] 
    i = 2 
    while i<b and is_prime(i): 
     while n%i ==0: 
      factor.append(i) 
      n/=i 
      continue 
     i+=1 
    return factor 
print (prime_factor(28)) 

代碼行之有效的一些數字(27,24,12,18等),但28失敗我得到的輸出[2,2]對哪裏的故障謊言值28 ?

回答

0

問題在while條件:

while i<b : 
    while is_prime(i) and n%i ==0: 
     factor.append(i) 
     n/=i 
     continue 
    i+=1