Python筛选法集合筛选法判断素数
时间: 2024-10-19 14:00:27 浏览: 34
Python中可以使用集合和列表推导式来快速筛选出一定范围内的素数。首先,我们需要了解什么是素数:素数是指大于1的自然数,除了1和它本身以外不再有其他因数的数。
以下是两种常见的方法:
1. **循环判断法**:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1): # 只需检查到n的平方根即可
if n % i == 0:
return False
return True
# 列表筛选素数
primes = [num for num in range(100) if is_prime(num)]
```
2. **集合筛选法**:
```python
def sieve_of_eratosthenes(limit):
primes = {i for i in range(2, limit)} # 创建一个包含所有数字的集合
for num in primes.copy(): # 遍历并移除合数
if num * num > limit:
break
primes.difference_update(set(range(num*num, limit+1, num))) # 移除所有该数倍数
return primes
sieve_primes = sieve_of_eratosthenes(100)
```
这里使用了埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种古老的求素数的算法。
阅读全文