求素数Python程序
时间: 2024-10-10 19:01:06 浏览: 20
python求素数示例分享
在Python中,我们可以使用多种方法来编写一个简单的素数查找程序。这里展示一种常见的试除法(也称为埃拉托斯特尼筛法)实现的例子:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n + 1)
p = 2
while p * p <= n:
# 如果primes[p]还未改变,说明p是素数
if primes[p]:
# 将p的倍数全部标记为合数
for i in range(p * p, n + 1, p):
primes[i] = False
p += 1
# 返回大于1且为素数的数字列表
return [p for p in range(2, n) if primes[p]]
# 示例:找出小于50的所有素数
print(sieve_of_eratosthenes(50))
```
另一种更简洁的方式是使用内置的`filter()`函数配合`lambda`表达式和`math.sqrt()`函数,只检查到一个数开平方根即可:
```python
import math
def is_prime(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
def primes_upto(n):
return list(filter(is_prime, range(2, n)))
print(primes_upto(50))
```
阅读全文