素数因子计划总是返回3

时间:2017-05-09 20:26:55

标签: python-3.x

第一次潜入编码,我正在努力解决第三个项目欧拉问题(找到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)

再次感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您将return语句放在prime的嵌套循环内部,因此这些循环的 none 完成迭代。