使用python输出100~200的所有素数
时间: 2024-09-24 13:12:52 浏览: 48
在Python中,我们可以使用一个经典的算法——埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出100到200之间的所有素数。以下是实现这一功能的代码:
```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
# 打印素数列表
for p in range(100, n+1):
if primes[p]:
print(p)
# 调用函数输出100到200的素数
sieve_of_eratosthenes(200)
```
这段代码首先创建了一个布尔数组,然后通过迭代去除所有的合数,最后保留下来的便是素数。
相关问题
python求100~200所有素数
以下是Python程序,可以求出100~200之间的所有素数:
```python
primes = []
for num in range(100, 201):
for i in range(2, num):
if num % i == 0:
break
else:
primes.append(num)
print(primes)
```
输出如下:
```
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
```
希望这可以帮到你!
python输出100~200之间的全部素数
可以使用以下代码来输出100~200之间的全部素数:
```python
for num in range(100, 201):
if all(num % i != 0 for i in range(2, int(num ** 0.5) + 1)):
print(num)
```
解释一下上面的代码:
- `range(100, 201)` 表示从100到200的范围;
- `all(num % i != 0 for i in range(2, int(num ** 0.5) + 1))` 是一个判断是否为素数的条件,其中 `int(num ** 0.5) + 1` 表示取 `num` 的平方根并向上取整,然后加1,这是因为一个数的因子最多只有一个大于它的平方根的整数,所以只需要判断到平方根即可;
- 如果满足条件,则输出该数。
运行上述代码可以得到输出:
```
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
```
阅读全文