#4242. 欧拉的质数筛

欧拉的质数筛

题目名称:欧拉的质数筛

【题目描述】

给定一个正整数 $n$,请你用欧拉筛法(线性筛法)找出 $1$ 到 $n$ 中的所有质数,并按升序输出这些质数。

此外,请输出这些质数的个数。


【输入格式】

一行一个正整数 $n$。


【输出格式】

第一行输出一个整数,表示 $1$ 到 $n$ 中质数的个数。

第二行按升序输出所有的质数,用空格隔开。


【样例输入】

10

【样例输出】

4
2 3 5 7

【数据范围】

  • $1 \leq n \leq 10^7$
  • 本题要求时间复杂度为 $O(n)$,否则可能超时。

【提示】

  • 本题数据范围较大,注意使用合适的数组大小和类型及算法。