如何在Python中找到一個數字的最大質因數?

Linda Hamilton
發布: 2024-11-07 07:49:02
原創
210 人瀏覽過

How to Find the Largest Prime Factor of a Number in Python?

在 Python 中找出素因數

數論中的一個常見任務是找出數字的素因數。一種可能的方法是簡單地將數字除以從 2 到其平方根的下限的所有其他數字,檢查餘數是否為 0。但是,這種方法的計算成本可能很高。

一種更有效率的暴力方法-下面介紹了專門用於查找數字的最大素因數的強制演算法:

<code class="python">def largest_prime_factor(n):
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
    return n
登入後複製

該演算法的工作原理是迭代所有數字直至給定數字的平方根。對於每個數字,它檢查該數字是否是給定數字的因數,如果是,則將該數字除以該因數。該演算法一直持續到該數字不再能被該範圍內的任何數字整除,並且剩餘的數字是最大的素因數。

<code class="python">largest_prime_factor(600851475143)
# Output: 6857
登入後複製

或者,要找出一個數的所有素因數:

<code class="python">def prime_factors(n):
    i = 2
    factors = []
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            factors.append(i)
    if n > 1:
        factors.append(n)
    return factors</code>
登入後複製

以上是如何在Python中找到一個數字的最大質因數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!