【发布时间】:2018-06-24 21:42:35
【问题描述】:
这是一个欧拉计划问题。 数字 600851475143 的最大质因数是多少? 我写了以下代码-:
def prime_factors(x):
my_list = []
for no3 in range(2, int(x)):
i = 0
if x % no3 == 0:
for a in range(1, int(no3)):
if no3 % a == 0:
i = i + 1
if i == 1:
my_list.append(no3)
print(max(my_list))
prime_factors(600851475143)
它适用于小数字,但对于像“600851475143”这样的大数字,代码不会给出输出,它只是继续运行。 我想知道这段代码有什么问题,我该如何解决。
【问题讨论】:
-
这个数字比较大,你的代码必须在第一个循环中循环大量数字(提示:你不需要那么多数字)和第二个循环中的大量数字,所以可能需要很长时间才能完成。
-
这在 Code Golf 或 Software Engineering StackExchange 网站上可能会更好。
-
做过研究吗?仅通过搜索您要考虑的数字,stackoverflow 就有超过 300 次点击。
-
再一次,模组将某些东西标记为重复,即使它不是重复的。这个问题专门询问Python,另一个问题是关于Java。
标签: python primes prime-factoring