判断100-200之间有多少素数,并输出所有素数
时间: 2024-11-29 10:32:52 浏览: 15
判断101-200之间有多少个素数,并输出所有素数
判断100到200之间的素数,可以采用一种称为“埃拉托斯特尼筛法”(Sieve of Eratosthenes)的经典算法。这个算法的基本思想是从2开始,将它的倍数都标记成合数,然后找出下一个未被标记的数,继续这个过程直到达到给定范围的最大值。
以下是简单的步骤:
1. 创建一个布尔数组,长度从100到200,初始全部设为true,表示这些数字都是潜在的素数。
2. 遍历从2到√200,对于每个素数i,如果它在数组中的对应位置是true,则将i的所有倍数(除了i本身)标记为false,因为它们不是素数。
3. 最后,在数组中所有的true元素位置就是100到200之间的素数。
下面是Python代码实现:
```python
def find_primes(start, end):
primes = [True] * (end - start + 1)
primes[0], primes[1] = False, False
for i in range(2, int(end**0.5) + 1):
if primes[i]:
for j in range(i*i, end+1, i):
primes[j - start] = False
return [start + i for i, is_prime in enumerate(primes) if is_prime]
# 输出结果
prime_numbers = find_primes(100, 200)
print("在100-200之间有{}个素数:".format(len(prime_numbers)))
for prime in prime_numbers:
print(prime)
阅读全文