您的位置:首页 > 其它

XYNUOJ 1913 快速查找素数

2018-03-19 20:48 302 查看

1913: 快速查找素数

时间限制: 4 Sec  内存限制: 64 MB
提交: 47  解决: 11
[提交][状态][讨论版]

题目描述

现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数。

输入

给出一个正整数数N(N<=2000000) 但N为0时结束程序。 测试数据不超过100组

输出

将2~N范围内所有的素数输出。两个数之间用空格隔开

样例输入

5
10
11
0

样例输出

2 3 5
2 3 5 7
2 3 5 7 11

解题思路:素数打表
代码如下:
# include<stdio.h>
int v[2000005]={0};
void w()
{
for(int i=2;i*i<=2000005;i++)
if(v[i]==0)
for(int j=i*i;j<=2000005;j+=i)
v[j]=1;
}
int main(){
int n;
w();
while(~scanf("%d",&n))
{
for(int i=2;i<=n;i++)
if(!v[i])
printf("%d ",i);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: