Python 查找素因子
問題:
兩部分問題:
問題:為什麼這個演算法比簡單測試每個數字的演算法更快?
<code class="python">n = 600851475143 i = 2 while i * i < n: while n % i == 0: n = n / i i = i + 1 print(n)</code>
答案:
答案:
答案:
1. :
給定的演算法透過迭代從2 到給定數字n 的平方根的所有數字,使用強力來找到最大素因數。對於每個數字 i,它檢查是否整除 n 沒有餘數。如果是,它會重複將 n 除以 i,直到 n 不再能被 i 整除。然後它將 i 加 1 並繼續該過程。最大的質因數將是 n.<code class="python">def largest_prime_factor(n): i = 2 while i * i <= n: if n % i == 0: n //= i else: i += 1 return n</code>
以上是暴力演算法如何找到數字的最大素因數,為什麼它比測試每個數字更快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!