python写一判素数的函数

  • Post category:Python

下面我来详细讲解如何用Python编写一个判断素数的函数:

什么是素数

素数是指只能由1和它本身两个正整数相乘得到的整数,比如2、3、5、7、11、13等。因此,一个大于1的整数如果不是素数,就被称为合数。

判定素数的方法

判断一个数是否为素数,最简单的方法是试除法。即从2开始,依次将该数除以2、3、4、5……直到它小于或等于它的平方根。如果这个过程中有一个数可以整除它,那么它就不是素数,否则就是素数。这个算法的时间复杂度是O($\sqrt n$),比较高效。

代码实现

下面是一个简单的Python函数来判断一个数是否为素数:

import math

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(math.sqrt(n))+1):
        if n % i == 0:
            return False
    return True

这个函数先将小于等于1的数排除,因为1既不是素数也不是合数。然后从2开始到$\sqrt{n}$为止,依次试除n,如果n能被i整除,则说明n不是素数,返回False;如果循环结束还没有返回False,则说明n是素数,返回True。

下面我们测试一下这个函数:

print(is_prime(2))  # True
print(is_prime(4))  # False
print(is_prime(7))  # True
print(is_prime(25))  # False

输出结果与预期相符,说明这个函数实现正确。