我無法理解我遇到此網站本身的以下代碼塊。它創建一個函數來找出給定數字的最大素數因子。它下面給出: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)
將返回因素n
,而不是首要因素,因爲如果d
是n
因素while循環只檢查和不是如果它也是它應該是的主要。
請指出,如果我錯了,也是你的邏輯背後的推理。此外,如果我是正確的,那麼請簡單地提供一個合適的代碼塊及其背後的邏輯。儘量保持代碼儘可能簡單。
這是我會怎麼解決這個問題。第一步:我會用例子運行程序,看它是否會產生因素或主要因素。第二步:當我發現我的猜測是錯誤的(程序確實按照廣告的方式工作)時,我會用小數字(n = 4,n = 6,n = 18可能是有趣的)自己運行程序,然後看看這是怎麼回事。 –