用数组找出100内所有素数
时间: 2023-10-29 18:05:50 浏览: 102
好的,我可以给出一个简单的方法来解决这个问题。我们可以使用“筛法”,即“埃氏筛法”,它是一种非常高效的方法来找出一定范围内的素数。具体实现步骤如下:
1.创建一个长度为 101 的布尔类型数组 prime,其中 prime[i] 表示数值 i 是否是素数,初始值都为 true。
2.从 2 开始,枚举所有小于等于 10 的正整数 k,对于每个 k,如果 prime[k] 为 true,则将 k 的倍数(除 k 本身)标记为 false。
3.在标记完成后,所有 prime[i] 为 true 的 i 就是小于等于 100 的素数。
下面是具体实现的 Python 代码:
```
# 初始化布尔数组
prime = [True] * 101
# 0 和 1 不是素数
prime[0], prime[1] = False, False
# 埃氏筛法
for i in range(2, 11):
if prime[i]:
for j in range(i * 2, 101, i):
prime[j] = False
# 输出结果
for i in range(2, 101):
if prime[i]:
print(i, end=' ')
```
输出结果如下:
```
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
```
这个方法的时间复杂度是 O(n log log n),其中 n 是素数的上限。在这个问题中,n 等于 100,因此时间复杂度非常小,可以很快地找到所有小于等于 100 的素数。
阅读全文