Python 通过计算零余数检查数字是否为素数

Python 通过计算零余数检查数字是否为素数,python,primes,Python,Primes,我试图写一个程序,检查一个数字是否是素数 我已经知道的方法是:检查是否有任何数字,不包括数字本身和1,提示为零 我想尝试的方法是:检查是否有两个以上的数字(包括1和数字本身)提示为零: n=10 for a in range(1,n+1): x=n%a if (x == 0): print x 我得到的实例数时,提醒是零与代码提到。我想用这样一种方式定义逻辑,如果输出中的零的数量大于2,那么这个数字就不是素数,否则这个数字就是素数。期望输入的数字大于1。我认为人们会感到困惑,

我试图写一个程序,检查一个数字是否是素数

我已经知道的方法是:检查是否有任何数字,不包括数字本身和1,提示为零

我想尝试的方法是:检查是否有两个以上的数字(包括1和数字本身)提示为零:

n=10
for a in range(1,n+1):
   x=n%a
   if (x == 0):
   print x

我得到的实例数时,提醒是零与代码提到。我想用这样一种方式定义逻辑,如果输出中的零的数量大于2,那么这个数字就不是素数,否则这个数字就是素数。期望输入的数字大于1。

我认为人们会感到困惑,并避免这样做,因为这不是检查素数的有效方法。通常,我们希望尽可能快速、轻松地取消某个数字的资格,避免进行任何额外的除法

但是,如果这是您想要的,下面是一个实现:

def is_prime(n):
    '''
    I want to define the logic in such that if the number 
    of zeros is greater than 2 in the output, then the number
    is not prime, else the number is prime
    '''

    return sum(n % divisor == 0 for divisor in range(1, n + 1)) <= 2

# Expecting that the input number is greater than 1
for n in range(2, 100):
    if is_prime(n):
        print(n)

你为什么要这样做的可能重复?