如何在Python中找到一个数字的最大质因数?

Linda Hamilton
发布: 2024-11-07 07:49:02
原创
280 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板