给定一个正整数 NN,请你输出 NN 以内(不包含 NN)的质数以及质数的个数。
时间: 2024-06-11 11:06:41 浏览: 344
以下是 Python 代码:
```python
def count_primes(n):
if n < 2:
return 0
primes = [True] * n
primes[0] = primes[1] = False
for i in range(2, int(n ** 0.5) + 1):
if primes[i]:
primes[i * i: n: i] = [False] * len(primes[i * i: n: i])
return sum(primes), [i for i in range(n) if primes[i]]
n = int(input())
count, primes = count_primes(n)
print(count)
print(*primes)
```
首先,定义一个函数 `count_primes(n)`,输入正整数 n,输出 n 以内的质数个数以及质数列表。这个函数使用了埃氏筛法,具体实现方法可以参考这篇博客:[埃氏筛法求素数](https://www.cnblogs.com/ECJTUACM-873284962/p/7654269.html)。
然后,读入正整数 n,调用 `count_primes(n)`,输出质数个数以及质数列表。其中,使用了 `print(*primes)` 将质数列表打散为多个参数输出。
阅读全文
相关推荐
















