python怎么判断素数

   2025-03-15 5300
核心提示:判断一个数是否为素数,可以通过以下方法:方法一:遍历判断def is_prime(n):if n2:return Falsefor i in range(2, n):if n % i

判断一个数是否为素数,可以通过以下方法:

方法一:遍历判断

def is_prime(n):if n < 2:return Falsefor i in range(2, n):if n % i == 0:return Falsereturn True# 示例使用print(is_prime(5))  # 输出 Trueprint(is_prime(10))  # 输出 False

方法二:优化遍历判断

import mathdef is_prime(n):if n < 2:return Falsefor i in range(2, math.isqrt(n) + 1):if n % i == 0:return Falsereturn True# 示例使用print(is_prime(5))  # 输出 Trueprint(is_prime(10))  # 输出 False

方法三:判断是否被小于等于平方根的素数整除

import mathdef is_prime(n):if n < 2:return Falseif n < 4:return Trueif n % 2 == 0:return Falsefor i in range(3, math.isqrt(n) + 1, 2):if n % i == 0:return Falsereturn True# 示例使用print(is_prime(5))  # 输出 Trueprint(is_prime(10))  # 输出 False

方法四:使用Sieve of Eratosthenes(埃拉托斯特尼筛法)

def sieve_of_eratosthenes(n):prime_list = [True] * (n + 1)prime_list[0] = prime_list[1] = Falsep = 2while p * p <= n:if prime_list[p]:for i in range(p * p, n + 1, p):prime_list[i] = Falsep += 1return prime_listdef is_prime(n):prime_list = sieve_of_eratosthenes(n)return prime_list[n]# 示例使用print(is_prime(5))  # 输出 Trueprint(is_prime(10))  # 输出 False

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言