编制用筛选法求1-n间的素数
时间限制: 1 s
内存限制: 128 MB
提交:218
正确:166
分值:79
题目描述
编制一个使用筛选法求1到n(n≤10000)以内所有素数的程序。
筛选法求素数的基本思想如下:
-
把从2到n的一组正整数按从小到大的顺序排列。
-
从2开始,依次删除其倍数(不包括2本身),接着是3的倍数(不包括3本身),然后是5的倍数(不包括5本身),依此类推,直到删除√n的倍数为止。
-
剩余的数即为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(1≤n≤10000)
输出
输出1-n以内的素数
样例
提交人
来源/分类