在Python中,求素数可以通过以下几种方法实现:
方法一:穷举法
def countPrimes1(n):
if n <= 2:
return 0
res = []
for i in range(2, n):
flag = 0
for j in range(2, i):
if i % j == 0:
flag = 1
break
if flag == 0:
res.append(i)
return len(res)
方法二:利用定理
from math import sqrt
def is_prime(n):
if n < 2:
return False
for i in range(2, int(sqrt(n)) + 1):
if n % i == 0:
return False
return 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)
以上方法都可以用来求出指定范围内的所有素数。你可以选择最适合你需求的方法进行实现。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/138866.html