初学者。我运行这个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)
答案 0 :(得分:0)
看看这个:
while is_not_prime(y):
prime_factors(y)
16
不是素数,所以你在这里陷入无限while True
循环。
如果你想要摆脱这个循环,你将需要以某种方式改变循环内的y
。