python中定义函数判断是否为素数

  • Post category:Python

Python中定义函数判断是否为素数的步骤如下:

  1. 首先,我们需要明确什么是素数。素数指大于1的自然数,除了1和它本身以外不再有其他因数的自然数。因此,我们需要编写一个函数,判断一个数是否是素数。
  2. 判断一个数是否是素数,可以采用试除法。也就是,我们可以用从2开始到这个数-1的所有自然数,去试一下它是否能被整除。如果能被整除,那么它就不是素数。如果都不能被整除,那么它就是素数。
  3. 实现判断素数的函数,代码如下:
def is_prime(number):
    """
    判断一个数是否是素数
    """
    if number <= 1:  # 1不是素数
        return False
    for i in range(2, int(number ** 0.5) + 1):
        if number % i == 0:  # 如果能被整除,就不是素数
            return False
    return True
  1. 对于上面的代码,我们首先判断传入的数是否小于等于1。因为1不是素数,所以小于等于1的数肯定不是素数。接着,我们从2开始到这个数-1的所有自然数遍历,如果中间有任意一个数能被整除,就返回False,代表不是素数。如果都不能被整除,就返回True,代表是素数。
  2. 测试上述代码的正确性,代码如下:
print(is_prime(5))  # True
print(is_prime(6))  # False
print(is_prime(17))  # True
  1. 特别说明:在for循环中的range()函数里,为什么是int(number ** 0.5) + 1呢?因为如果一个数不是素数,那么它肯定可以分解成两个因数的乘积。这两个因数中,一个一定小于等于这个数的平方根,另一个一定大于等于这个数的平方根。因此,遍历到这个数的平方根就足够了。同时,我们将平方根转化为int类型,加一是为了保证不遗漏小数点后的数。