找出1到100的所有素数
时间: 2024-10-17 07:13:37 浏览: 37
Python求出0~100以内的所有素数
找出1到100之间的所有素数,可以通过一个简单的算法来实现,这个算法通常称为埃拉托斯特尼筛法(Sieve of Eratosthenes):
1. 创建一个布尔数组`is_prime[0..100]`,并初始化所有元素为True,表示100内的所有数字都是素数。
2. 从第一个数2开始,检查它是否是素数。如果是素数,则将其所有的倍数标记为非素数。这里遍历从`i*i`到100的范围,并将它们对应的`is_prime`设为False,因为除了2以外,其他的偶数不是素数。
3. 继续查找下一个未标记为非素数的数(即下一个小于已知最大素数的数),直到找到大于或等于100的数为止。
以下是用Python实现的代码片段:
```python
def find_primes(n):
is_prime = [True] * (n+1)
is_prime[0], is_prime[1] = False, False # 0和1不是素数
for i in range(2, int(n**0.5) + 1):
if is_prime[i]:
for j in range(i*i, n+1, i): # 将i的倍数标记为非素数
is_prime[j] = False
primes = [i for i, prime in enumerate(is_prime) if prime]
return primes
primes_1_to_100 = find_primes(100)
```
运行这段代码会得到1到100之间的所有素数列表。
阅读全文