首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python 3项目Euler运行时

Python 3项目Euler运行时
EN

Stack Overflow用户
提问于 2016-03-21 22:04:01
回答 1查看 463关注 0票数 0

这是我对Project Euler Problem 3的解决方案

代码语言:javascript
复制
def max_prime(x):
    for i in range(2,x+1):
            if x%i == 0:
                    a = i
                    x = x/i
    return a
max_prime(600851475143)

它运行起来需要太多的时间。有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2019-06-04 08:32:52

您的解决方案试图迭代到600851475143,这是不必要的。你只需要迭代到最大素因数的平方根。

代码语言:javascript
复制
from math import sqrt


def max_prime_factor(x):
    i = 2
    while i ** 2 <= x:
        while x % i == 0:  # factor out ALL multiples of i
            x //= i
        i += 1
    return x


print(max_prime_factor(600851475143))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36133135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档