为什么此查找素数的循环未按预期方式执行?

问题描述

def prime_no():
number = int(input("Enter your number for which you wanna generate prime factors: "))
prime = [2,3]
numb = [*range(4,number + 1)]
for x in numb:
    while x > number:
        if x % 2 == 0:
            continue                                                                              
        if x % numb == 0 and x != numb:
            continue
        else:
            prime.append(x)

print(prime)

第二个在while循环中有所不同,因为堆栈将其识别为错误输出保持不变[2,3]。我在做什么错了?

解决方法

numb是一个列表,模运算符不适用于列表。您也没有正确缩进。同样,x是一个数字,您正在检查它是否不等于列表numb,它将永远不会相等。因此,它一直在继续。