当我 运行 这个素因数程序时没有任何反应

Nothing happens when I run this prime factors program

这里是初学者。我 运行 这个 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)

看看这个:

while is_not_prime(y):
    prime_factors(y)

16 不是质数,所以你陷入了无限的 while True 循环。

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