ghost79
导航
嘉小博客园
首页
新随笔
联系
聚合
登录
<
2009年4月
>
日
一
二
三
四
五
六
29
30
31
1
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
1
2
3
4
5
6
7
8
9
统计
随笔 - 10
文章 - 10
评论 - 2
引用 - 0
留言簿(0)
给我留言
查看公开留言
查看私人留言
随笔分类
信息学奥林匹克 (9)
(rss)
随笔档案
2009年9月 (4)
2009年4月 (6)
文章档案
2009年9月 (1)
2009年6月 (7)
2009年4月 (2)
搜索
最新评论
1. re: 二叉树类的定义和实现
看不懂
--太帅
2. re: 二叉树类的定义和实现
下次请用中文。
--太帅
3. dff
sdf
--
4. asdf
asdf
--
5. asdf
asdf
--
阅读排行榜
1. 计算N的阶乘(207)
2. 约瑟夫问题的数组实现(191)
3. 经典递归问题——汉诺塔(190)
4. 用计算机来计算圆周率(176)
5. 等比数列公式及推导(167)
6. 用筛法求2-n之间的所有素数(161)
7. 递归版二分查找(151)
8. N阶奇数幻方题解(148)
9. 合并排序之C++实现(145)
10. 二叉树类的定义和实现(143)
评论排行榜
1. 经典递归问题——汉诺塔(2)
2. 二叉树类的定义和实现(2)
3. 约瑟夫问题的数组实现(1)
4. 合并排序之C++实现(0)
5. 递归版二分查找(0)
6. 等比数列公式及推导(0)
7. 用计算机来计算圆周率(0)
8. N阶奇数幻方题解(0)
9. 计算N的阶乘(0)
10. 用筛法求2-n之间的所有素数(0)
用筛法求2-n之间的所有素数
[问题描述]
用筛法求2-100之间所有的素数可以这样做,将2的倍数但不包括2都划掉,再将3的倍数但不包括3全部划掉,然后是5的,7的但不包括5、7全部划掉,最后剩下的就都是素数。
[输入]
只有一行,即整数n
[输出]
2-n的所有素数
[示例]
输入:
11
输出:
2 3 5 7 11
[问题解答]
#include
<
iostream
>
#include
<
math.h
>
using
namespace
std;
int
main(
void
)
{
int
n;
cin
>>
n;
int
*
p
=
new
int
[ n
+
1
];
for
(
int
i
=
2
; i
<=
n; i
++
) p[ i ]
=
i;
int
z
=
2
, i;
while
( z * z
<=
n )
{
i
=
z
*
2
;
while
( i
<=
n )
{
p[ i ]
=
0
;
i
=
i
+
z;
}
do
z
++
;
while
(
!
p[ z ] );
}
for
(
int
i
=
2
; i
<=
n; i
++
)
if
( p[ i ] ) cout
<<
i
<<
"
"
;
delete []p;
system(
"
PAUSE
"
);
return
0
;
}
posted on 2009-04-09 13:16 C家家 阅读(161)
评论(0)
编辑
收藏
评论
标题
姓名
主页
内容
请输入验证码:
*
Remember Me?
登录
使用高级评论
Top
订阅回复
取消订阅
[使用Ctrl+Enter键可以直接提交]
Powered by:
Copyright © C家家