2016-09-22 4 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のために失敗しました? while状態で

答えて

0

問題:

while i<b : 
    while is_prime(i) and n%i ==0: 
     factor.append(i) 
     n/=i 
     continue 
    i+=1 
関連する問題