私はこのサイト自体に出くわした次のコードブロックを理解できません。与えられた数の最大素因数を求める関数を作成します。それは以下の通りである:Pythonで指定された最大のプライムファクタ
def prime_factors(n):
"""Returns all the prime factors of a positive integer"""
factors = []
d = 2
while n > 1:
while n % d == 0:
factors.append(d)
n /= d
d = d + 1
return factors
pfs = prime_factors(1000)
largest_prime_factor = max(pfs) # The largest element in the prime
私の疑問機能prime_factors(n)
がd
がn
の要因である場合は、whileループのみがチェックされているので、はn
のなく素因数要因戻ってくるということで、もしそれがすべきであるような素数でもないならば。
私が間違っているのか、あなたのロジックの背後にある推論を指摘してください。さらに、私が正しいとすれば、適切なコードブロックとその背後にあるロジックを簡単に提供してください。コードをできるだけシンプルに保つようにしてください。
は、ここで私はこの問題にアプローチする方法をです。ステップ1:例を使ってプログラムを実行し、要因や主要要素が生成されているかどうかを確認します。ステップ2:私の推測が間違っていることを発見したとき(プログラムは広告されたように働く)、私は小さな数字(n = 4、n = 6、n = 18は興味深いものかもしれない)どうしたの。 –