当我运行这个素数因子程序时没有任何事情发生

时间:2015-05-04 02:44:23

标签: python printing factors

初学者。我运行这个Python代码,它应该找到并打印任何数字的素因子(在这种情况下它是16),但控制台中没有任何内容。救命!

def is_not_prime(x):
    for i in range(2,x):
        if x % i == 0:
            return True
            break
        else:
            return False

def prime_factors(n):
    for i in range(2,n):
        if n % i == 0:
            x = i
            primes.append(x)
            break
        y = n / x
        return y

primes = []

def main(y):
    while is_not_prime(y):
        prime_factors(y)
    primes.append(y)
    print(primes)

main(16)

1 个答案:

答案 0 :(得分:0)

看看这个:

while is_not_prime(y):
    prime_factors(y)

16不是素数,所以你在这里陷入无限while True循环。

如果你想要摆脱这个循环,你将需要以某种方式改变循环内的y