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

Python函数如何判断一个数是否是质数

发布时间:2023-06-02 13:32:34

在Python语言中,判断一个数是否是质数的方法有多种。其中两种常用的方法如下:

1. 试除法:试除法是最基本的质数判断方法,其思想是:如果一个数n不是质数,那么它一定可以分解成两个数a和b,其中1<a≤b<n。假如n不能被2至n-1之间的任意一个整数整除,那么n就是质数。

代码实现:

def is_prime(n):

    if n <= 1:

        return False

    for i in range(2, n):

        if n % i == 0:

            return False

    return True

print(is_prime(5)) # 返回True

print(is_prime(8)) # 返回False

2. 埃氏筛法:埃式筛法是一种时间复杂度为O(nloglogn)的质数判断方法,其思想是:如果一个数n是质数,那么2n、3n、4n、……一定不是质数。因此可以先将2至n之间的所有整数标记为质数,然后从2开始,将每个质数的倍数都标记为合数。最后,未被标记的数就是质数。

代码实现:

def is_prime(n):

    if n <= 1:

        return False

    is_prime_list = [True] * (n+1)

    is_prime_list[0] = False

    is_prime_list[1] = False

    for i in range(2, int(n**0.5)+1):

        if is_prime_list[i]:

            for j in range(i**2, n+1, i):

                is_prime_list[j] = False

    return is_prime_list[n]

print(is_prime(5)) # 返回True

print(is_prime(8)) # 返回False

总结:

无论是试除法还是埃氏筛法,其本质都是对每个数字进行遍历,判断其是否为质数。其中,试除法简单易懂,实现简单,适用于小数据集的质数判断,而埃氏筛法适用于高效处理大数据集的质数判断。