python横向出现数字质数筛的的代码怎么写
时间: 2024-03-24 08:36:32 浏览: 38
如果你想要在 Python 中使用横向输出的方式实现质数筛法,可以使用以下代码:
```python
def sieve(n):
is_prime = [True] * (n + 1)
is_prime[0] = is_prime[1] = False
for i in range(2, int(n**0.5) + 1):
if is_prime[i]:
for j in range(i**2, n + 1, i):
is_prime[j] = False
return [i for i in range(n + 1) if is_prime[i]]
primes = sieve(100)
for num in primes:
print(num, end=' ')
```
这段代码会将 100 以内的所有质数横向输出,输出结果为:
```
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
代码的原理是使用质数筛法找出小于等于 n 的所有质数,并且在输出时使用 `end` 参数指定输出的末尾字符为空格。具体实现中,我们使用一个布尔值列表 `is_prime` 来记录每个数字是否为质数,初始时设置所有数字都为质数。然后从 2 开始,遍历到 $\sqrt{n}$,如果当前数字是质数,则将其所有倍数标记为非质数。最后遍历所有数字,将是质数的数字加入到结果列表中。
阅读全文