判断101-200之间有多少个素数,并输出所有素数。用python写
时间: 2024-09-24 17:13:49 浏览: 45
判断101到200之间的素数可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种找出一定范围内所有质数的经典算法。以下是Python代码实现:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n+1)
primes[0], primes[1] = False, False # 0和1不是素数
for i in range(2, int(n**0.5) + 1):
if primes[i]:
for j in range(i*i, n+1, i):
primes[j] = False
prime_numbers = [i for i, is_prime in enumerate(primes) if is_prime and i >= 101]
return len(prime_numbers), prime_numbers
count, primes_in_range = sieve_of_eratosthenes(200)
print(f"在101-200之间有 {count} 个素数。它们是:{primes_in_range}")
```
运行这段代码,它会输出101到200之间素数的数量以及所有的素数。
相关问题
判断101-200之间有多少个素数,并输出所有素数
首先,素数是指只能被1和自身整除的正整数。因此,我们需要从101到200之间的每个数进行判断,看它是否是素数。
具体的方法是,对于每个数,从2开始到它自身的平方根之间的每个数进行判断,看它是否能被整除。如果存在一个数能被整除,那么这个数就不是素数。如果不存在这样的数,那么这个数就是素数。
根据这个方法,我们可以写出如下的Python代码:
```python
import math
count = # 记录素数的个数
for num in range(101, 201):
is_prime = True # 假设num是素数
for i in range(2, int(math.sqrt(num))+1):
if num % i == :
is_prime = False # num不是素数
break
if is_prime:
print(num)
count += 1
print("101-200之间共有%d个素数" % count)
```
运行结果如下:
```
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
101-200之间共有21个素数
```
因此,101-200之间共有21个素数。
判断101-200之间有多少个素数,并输出所有素数。
这个问题可以使用筛法求解素数,这里给出一个 Python 代码实现:
```python
def count_primes(start, end):
primes = []
is_prime = [True] * (end+1)
p = 2
while p * p <= end:
if is_prime[p]:
for i in range(p*2, end+1, p):
is_prime[i] = False
p += 1
for i in range(max(start, 2), end+1):
if is_prime[i]:
primes.append(str(i))
return len(primes), ', '.join(primes)
count, primes = count_primes(101, 200)
print(f"There are {count} prime numbers between 101 and 200:\n{primes}")
```
运行结果:
```
There are 21 prime numbers between 101 and 200:
101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199
```