【发布时间】:2017-02-04 14:50:23
【问题描述】:
我正在研究欧拉问题 3 的项目,
13195的质因数是5、7、13和29。600851475143的最大质因数是多少?
我想出的代码如下:
def q_prime(a):
if a == 2:
return True
elif a < 2:
return False
for i in range(2,a):
if a%i == 0:
return False
else:
return True
def prime_factor(x):
prime_factors =[]
for i in range(1,x):
if q_prime(i) == True and x%i == 0:
prime_factors.append(i)
return prime_factors
调用 13195 的这个函数给了我 [5,7,13,29] 的预期。我尝试了一些其他的组合,比如 1035,它给出了 [3,5,23]。但是,当我在 600851475143 上调用此函数时,我没有得到任何输出。此外,我也没有收到错误消息。运行一会,简单重启shell
我知道这不是一个优雅的代码,而且我猜想对大量此类问题进行暴力破解会导致此问题?到底发生了什么?
【问题讨论】: