`
YuHuang.Neil
  • 浏览: 181312 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Output the k-th Prime Number

阅读更多

问题:输出第k个素数(1<=k<=10000)。

时间要求:必须在50ms内完成计算。

实现代码:


#define MAX 105000
unsigned long r[MAX],p[10000],n,t;
int main(){
	int i,j,k,m;
	for(i=0;i<MAX;++i) r[i]=i;
	for(i=0;i<MAX;++i){
		if(r[i]>1) {
			for(j=2;j<MAX;++j) 
				if((t=i*j)<=MAX) r[t]=0;
				else break;
		}
	}
	
	for(m=i=0;i<MAX;++i){
	    if(r[i]>1) p[m++]=r[i];
		if(m>=10000) break;
	}

	for(;~scanf("%d",&k);){
		printf("%ld\n",p[k-1]);
	}
}




运行结果:



  • 大小: 4.7 KB
  • 大小: 8.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics