2017-05-09 3 views
-1

初めてのコーディングに潜入し、私は3番目のプロジェクトオイラーの問題(600851475143という最大の素因数を見つける)に取り組もうとしており、素因数を単純に返す関数を書いてみたい私は最大のものを決定する前に。プライムファクタプログラム常に返す3

私は下に書かれたいくつかのPythonコードを書きました。それは任意の数のファクタを見つけるが、何らかの理由で、プライムファクタ関数は常に3を返します。私は行方不明の何かがありますか?コードは次のとおりです。

def factorize(j): 
    factors = [] 
    print("Finding factors...") 
    for i in range(1, j+1): 
     if j % i == 0: 
      factors.append(i) 
    print("Done!") 
    print(factors) 
    return factors 

def prime(n): 
    primes = [] 
    for factor in n: 
     for p in range(1, factor+1): 
      for i in range (2, p): 
       if p % i == 0: 
        break 
       else: 
        primes.append(p) 
       print(primes) 
       return primes 

print("Number to factor: ") 
num = int(input()) 
num = factorize(num) 
print("Now to find the primes...") 
prime(num) 

もう一度お世話になります!

+0

あなたがそれが不器用であることを知っているなら、まずそれに対処しないでください。 –

+0

それは私の前にemptively自己非難していた。 – Los

答えて

0

primeの入れ子になったループの内側にreturnという文があるため、はありません。これらのループのうちは繰り返しを完了します。

関連する問題