欢迎访问宙启技术站
智能推送

Python函数实现素数判断

发布时间:2023-06-30 14:39:54

要判断一个数是否为素数,可以使用以下函数实现:

def is_prime(n):
    if n <= 1:
        return False
    elif n <= 3:
        return True
    elif n % 2 == 0 or n % 3 == 0:
        return False
    i = 5
    while i * i <= n:
        if n % i == 0 or n % (i + 2) == 0:
            return False
        i += 6
    return True

该函数首先判断如果数n小于等于1,则不是素数,返回False。如果数n等于2或3,则是素数,返回True。接下来,利用数学规律,判断n是否能被2或3整除,如果能,则不是素数,返回False。

然后,从i=5开始,每次增加6,判断n是否能被i或i+2整除,如果能,则不是素数,返回False。这是因为除了2和3外,所有的素数都可以写成6n-1或6n+1的形式,所以只需要判断6n-1和6n+1的情况即可。

最后,如果通过以上判断,都没有返回False,则说明n为素数,返回True。

测试一些例子:

print(is_prime(2))   # True
print(is_prime(3))   # True
print(is_prime(7))   # True
print(is_prime(11))  # True
print(is_prime(13))  # True
print(is_prime(17))  # True
print(is_prime(20))  # False
print(is_prime(25))  # False
print(is_prime(30))  # False

输出结果:

True
True
True
True
True
True
False
False
False

以上就是使用Python函数判断一个数是否为素数的实现。这个函数可以快速判断任意数是否为素数,并且在时间复杂度上进行了优化,效率比较高。