码迷,mamicode.com
首页 > 其他好文 > 详细

快速查找素数

时间:2015-07-04 09:39:43      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

快速查找素数

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述
现在给你一个正整数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
来源
经典题
上传者

路过这

素数打表。提交开始超时。改成c语言的就过了

 
#include<iostream>
#include<string.h>
#include<math.h>
#include<stdio.h>
using namespace std;
int a[2000001];
void sushu()
{
	int i,j;
	a[0]=a[1]=1;
	for(i=2;i<=sqrt(2000000);i++)
	{
		if(a[i]==0)
		{
			for(j=i*i;j<=2000000;j+=i)
			{
				a[j]=1;
			}
		}
	}
}
int main()
{
	sushu();
	int N,i,time;
	while(scanf("%d",&N) && N)
	{
		time=0;
		if(N>=2)
		   printf("2");
         for(i=3;i<=N;i++)
		 {
			 if(a[i]==0)
				 //cout<<" "<<i;
				printf(" %d",i);
		 }
		 cout<<endl;
	}
	return 0;
}         

版权声明:本文为博主原创文章,未经博主允许不得转载。

快速查找素数

标签:

原文地址:http://blog.csdn.net/zuguodexiaoguoabc/article/details/46753229

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!