python求n以内的所有质数并输出,n的值由用户输入一个正整数。
时间: 2023-07-15 21:12:08 浏览: 105
python输出n以内的所有素数
5星 · 资源好评率100%
可以使用埃拉托斯特尼筛法来求解,以下是对应的Python代码:
```python
n = int(input("请输入一个正整数n: "))
# 初始化标记列表,假设所有数都为质数
is_prime = [True] * (n+1)
is_prime[0] = is_prime[1] = False
# 从2开始,遍历到根号n
for i in range(2, int(n**0.5)+1):
# 如果i是质数,则将i的倍数全部标记为非质数
if is_prime[i]:
for j in range(i*i, n+1, i):
is_prime[j] = False
# 输出所有质数
primes = [i for i in range(n+1) if is_prime[i]]
print("所有小于等于{}的质数为:{}".format(n, primes))
```
运行结果如下:
```
请输入一个正整数n: 50
所有小于等于50的质数为:[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
```
阅读全文