从键盘输入n(<=100000000),请编程输出1~n之间素数的个数
时间: 2023-10-08 09:07:46 浏览: 116
Java基础编程:判断m-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` 的个数即为素数的个数。
阅读全文