输出100->200之间的素数的个数,以及所有的素数。 输入 无 输出 100->200之间的素数的个数,以及所有的素数。 样例输入 样例输出 21 101 103 ... 197 199
时间: 2024-11-06 16:23:43 浏览: 69
要输出100到200之间素数的个数和所有素数,可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出该范围内的素数。这里我给出一个Python的实现过程:
```python
def count_and_primes(start, end):
sieve = [True] * (end + 1) # 初始化一个布尔列表,表示从0到end的所有数字都是素数
sieve[0], sieve[1] = False, False # 0和1不是素数
# 遍历从2到sqrt(end),将它们的倍数标记为非素数
limit = int(end ** 0.5) + 1
for i in range(2, limit):
if sieve[i]:
for j in range(i*i, end+1, i): # 将i的倍数标记为非素数
sieve[j] = False
# 统计并打印素数及其个数
prime_count = sum(sieve[start:end+1]) # 累加true对应的索引(素数)
primes = [i for i in range(start, end+1) if sieve[i]] # 把索引筛选出的素数存入列表
return prime_count, primes
start = 100
end = 200
count, primes = count_and_primes(start, end)
print(f"100到200之间的素数个数是:{count}")
print(f"所有的素数是:{primes}")
# 样例输出
# 输出:21
# 输出:[101, 103, ..., 197, 199]
```
阅读全文