1. 编写程序,使用筛选法求解小于n 的所有素数。
时间: 2024-10-23 18:07:30 浏览: 31
python使用筛选法计算小于给定数字的所有素数
编写程序使用筛选法求解小于n的所有素数,可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes)。这种方法的基本思想是从2开始,将它的倍数标记为合数,然后继续寻找下一个未被标记的数(即下一个素数),再将它的倍数全部标记,直到遍历到n为止。以下是使用Python实现的一个简单版本:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n+1) # 创建一个布尔数组,所有元素初始都标记为质数
p = 2
while p * p <= n:
if primes[p]: # 如果p是素数
for i in range(p * p, n+1, p): # 将p的倍数标记为合数
primes[i] = False
p += 1
# 输出所有的素数
prime_numbers = [i for i in range(2, n+1) if primes[i]]
return prime_numbers
# 示例
n = int(input("请输入一个正整数n:"))
result = sieve_of_eratosthenes(n)
print(f"小于{n}的所有素数有:{result}")
阅读全文