第一次潜入编码,我正在努力解决第三个项目欧拉问题(找到600851475143的最大素数因子),我想编写一个函数,在确定最大因子之前简单地返回素数因子
我在下面拼凑了一些粗俗的Python代码。它找到任何数字的因子都很好,但由于某种原因,素数因子函数总是返回3.是否有一些我缺少的东西?这是代码:
def factorize(j):
factors = []
print("Finding factors...")
for i in range(1, j+1):
if j % i == 0:
factors.append(i)
print("Done!")
print(factors)
return factors
def prime(n):
primes = []
for factor in n:
for p in range(1, factor+1):
for i in range (2, p):
if p % i == 0:
break
else:
primes.append(p)
print(primes)
return primes
print("Number to factor: ")
num = int(input())
num = factorize(num)
print("Now to find the primes...")
prime(num)
再次感谢您的帮助!
答案 0 :(得分:0)
您将return
语句放在prime
的嵌套循环内部,因此这些循环的 none 完成迭代。