编写程序,用筛选法求解200以内的所有素数并带格式输出。
时间: 2024-02-15 16:03:19 浏览: 116
好的,以下是Python3的代码实现:
```python
prime = [True] * 201 # 初始化200以内所有数都为素数
prime[0], prime[1] = False, False # 0和1不是素数
# 筛选法求素数
for i in range(2, int(201 ** 0.5) + 1):
if not prime[i]:
continue
for j in range(i ** 2, 201, i):
prime[j] = False
# 格式化输出素数
count = 0
for i in range(2, 201):
if prime[i]: # 如果是素数
count += 1
print("{:<5d}".format(i), end="")
if count % 10 == 0: # 每行输出10个素数
print()
```
输出结果为:
```
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 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199
```
其中,`prime`列表中的每个元素表示该下标对应的数是否为素数,`True`表示是素数,`False`表示不是素数。外层循环从2开始到200的算术平方根,内层循环从当前素数的平方开始,每次加上该素数,标记所有能被该素数整除的数为非素数。最后,按照每行输出10个素数的格式输出所有素数。
阅读全文