pathon埃拉托色尼筛计算并输出不大于输入数字的所有质数。
时间: 2024-10-12 07:13:15 浏览: 35
Python 中可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来计算并输出小于等于给定数字的所有质数。这是一个古老的算法,用于查找一定范围内的所有质数。以下是基本的实现步骤:
1. 创建一个布尔数组 `is_prime`,大小与输入数字 + 1 相同,并将所有元素初始化为 `True`,表示从 0 到该数字的每个数都可能是质数。
2. 遍历从 2 开始到 sqrt(n)(n 的平方根),对于每一个素数 i,将其所有的倍数(i*i开始的整数)设置为合数,因为在 i 的倍数上 i 已经被标记为因子了。
3. 遍历 `is_prime` 数组,将所有值为 `True` 的索引对应的数字作为结果列表中的质数添加。
下面是一个简单的 Python 代码示例:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n+1)
primes[0], primes[1] = False, False
for i in range(2, int(n**0.5) + 1):
if primes[i]:
for j in range(i*i, n+1, i):
primes[j] = False
return [num for num, is_prime in enumerate(primes) if is_prime]
# 测试代码
n = int(input("请输入一个数字: "))
result = sieve_of_eratosthenes(n)
print(f"小于等于 {n} 的所有质数是: {result}")
阅读全文