Python 检查素性校正的函数?

Python 检查素性校正的函数?,python,function,primes,Python,Function,Primes,检查输入是否为素数的函数。 我知道这里已经讨论过很多次了,但出于某种原因,我的代码给出了x=32的真实值,我不知道为什么 def is_prime(x): if x < 2: return False elif x == 2: return True else: for i in range(3,x): #Ignore sqrt(x) improvement if x%i == 0:

检查输入是否为素数的函数。 我知道这里已经讨论过很多次了,但出于某种原因,我的代码给出了x=32的真实值,我不知道为什么

def is_prime(x):
    if x < 2:
        return False
    elif x == 2:
        return True
    else: 
        for i in range(3,x): #Ignore sqrt(x) improvement
            if x%i == 0:
                return False
            else :
                return True
def为素数(x):
如果x<2:
返回错误
elif x==2:
返回真值
其他:
对于范围(3,x)内的i:#忽略sqrt(x)改进
如果x%i==0:
返回错误
其他:
返回真值
对于范围(3,x)内的i:

首先是数字3。作为
32%3!=0
,它返回
True
。然后函数中断,因为它返回了一个值

考虑将
返回True
放在for循环之后:

for i in range(3,x): #Ignore sqrt(x) improvement
    if x % i == 0:
        return False
return True
现在,如果一个数字是可除的,它将立即中断并返回
False
。但是如果没有数字进入32,for循环将完成,并返回
True


另外,如果您使用的是Python2.x,那么使用
xrange()
会更快,因为它会返回一个生成器:)。

您不会检查2的整除性。