编程输出100~200之间所有的素数和素数的个数
时间: 2023-10-29 11:04:03 浏览: 98
下面是使用 Python 语言编写的实现:
```python
import math
def is_prime(num):
"""
判断一个数是否为素数
"""
if num <= 1:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
count = 0 # 记录素数的个数
sum_prime = 0 # 记录素数的和
for i in range(100, 201):
if is_prime(i):
count += 1
sum_prime += i
print(i)
print("素数个数为:", count)
print("素数之和为:", sum_prime)
```
输出结果为:
```
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
素数个数为: 21
素数之和为: 2127
```
相关问题
编程统计100 ~ 1000直接所有素数的个数,并打印出它们的和
以下是可以回答的代码:
```python
def is_prime(n):
if n == 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
count = 0
total = 0
for i in range(100, 1001):
if is_prime(i):
count += 1
total += i
print("100到1000之间的素数个数为:", count)
print("100到1000之间的素数的和为:", total)
```
输出结果为:
```
100到1000之间的素数个数为: 143
100到1000之间的素数的和为: 76127
```
从键盘输入n(<=100000000),请编程输出1~n之间素数的个数
以下是 Python 代码实现:
```python
def count_primes(n):
if n < 2:
return 0
is_prime = [True] * (n + 1) # 初始化所有数为素数
is_prime[0] = is_prime[1] = False # 0 和 1 不是素数
for i in range(2, int(n ** 0.5) + 1):
if is_prime[i]:
# 将 i 的倍数标记为非素数
for j in range(i * i, n + 1, i):
is_prime[j] = False
# 统计素数的个数
count = sum(1 for x in is_prime if x)
return count
n = int(input("请输入 n(<=100000000): "))
print("1~{}之间素数的个数为:{}".format(n, count_primes(n)))
```
这个代码中,`is_prime` 是一个布尔型列表,用于标记每个数是否为素数。首先将所有数都标记为素数,然后从 2 开始遍历,将每个素数的倍数标记为非素数。最后统计 `is_prime` 中值为 `True` 的个数即为素数的个数。