输入一个大于2的正整数n,输出小于等于n的所有素数的列表。 运行示例: 47↙ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
时间: 2024-11-26 08:05:45 浏览: 15
基于jupyter notebook的python编程—–使用列表实现筛选法求素数(输入一个大于 2 的自然数,然后输出小于该数字的所有素数组成的列表)
5星 · 资源好评率100%
要输出小于等于给定正整数n的所有素数,可以编写一个简单的算法,如埃拉托斯特尼筛法(Sieve of Eratosthenes)。下面是用Python实现该功能的代码:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n+1) # 创建一个布尔数组,初始所有值设为True
primes[0], primes[1] = False, False # 0和1不是素数
# 遍历到sqrt(n),对每个素数的倍数标记为非素数
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
# 构建并返回素数列表
prime_list = [i for i in range(2, n+1) if primes[i]]
return prime_list
# 输入正整数
n = int(input("请输入一个大于2的正整数: "))
result = sieve_of_eratosthenes(n)
print(f"小于等于{n}的所有素数是: {result}")
阅读全文