hzCPPOJ

编制用筛选法求1-n间的素数

时间限制:  1 s      内存限制:   128 MB
提交:218     正确:166     分值:79

题目描述

编制一个使用筛选法求1到n(n≤10000)以内所有素数的程序。

筛选法求素数的基本思想如下:

  1. 把从2到n的一组正整数按从小到大的顺序排列。
  2. 从2开始,依次删除其倍数(不包括2本身),接着是3的倍数(不包括3本身),然后是5的倍数(不包括5本身),依此类推,直到删除√n的倍数为止。
  3. 剩余的数即为2到n之间的所有素数。


如有:

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
去掉2的倍数(不包括2),余下的数是:3 5 7 9 11 13 15 17 19 21 23 25 27 29

剩下的数中3最小,去掉3的倍数:

…………

如此下去直到所有的数都被筛完,求出的素数为:2 3 5 7 11 13 17 19 23 29


输入

输入一个整数n(1n≤10000)

输出

输出1-n以内的素数

样例

样例输入:
3
样例输出:
2 3

提交人

AmberXie

来源/分类