在Python中,求素数可以通过以下几种方法实现:
方法一:穷举法
def countPrimes1(n):if n <= 2:return 0res = []for i in range(2, n):flag = 0for j in range(2, i):if i % j == 0:flag = 1breakif flag == 0:res.append(i)return len(res)
方法二:利用定理
from math import sqrtdef is_prime(n):if n < 2:return Falsefor i in range(2, int(sqrt(n)) + 1):if n % i == 0:return Falsereturn True
方法三:使用列表推导式
def get_primes(n):return [x for x in range(2, n + 1) if is_prime(x)]

方法四:使用filter函数
def func_get_prime(n):return list(filter(lambda x: all(x % i != 0 for i in range(2, int(math.sqrt(x)) + 1)), range(2, n + 1)))
方法五:使用生成器表达式
def get_primes_generator(n):for x in range(2, n + 1):if is_prime(x):yield x
示例使用
求100以内的所有素数primes = get_primes(100)print(primes)
以上方法都可以用来求出指定范围内的所有素数。你可以选择最适合你需求的方法进行实现。
