Python 通过计算零余数检查数字是否为素数
我试图写一个程序,检查一个数字是否是素数 我已经知道的方法是:检查是否有任何数字,不包括数字本身和1,提示为零 我想尝试的方法是:检查是否有两个以上的数字(包括1和数字本身)提示为零: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。我认为人们会感到困惑,
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)
你为什么要这样做的可能重复?