Ural 1086 Cryptography

//题目要求第K个素数;k<=15000;把前15000个素数存起来即可,每次输出a[k] 
//Accepted
0.062 277 KB

1
 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 const int cnt=15000;
 5 int a[cnt+1]={0};
 6 bool isprime(int n)
 7 {
 8      if(n==2||n==3||n==5||n==7)return 1;
 9      if(n%2==0||n<2)return 0;
10      double t=sqrt(n*1.0);
11      for(int i=3; i<=t; i+=2)
12        if(n%i==0)return 0;
13      return 1;
14 }
15 
16 int main()
17 {
18     int n,i,k,count=0;
19     cin>>n;
20     for(i=2; count<=cnt; i++)
21     {
22       if(isprime(i))a[++count]=i;
23     }
24     for(i=1; i<=n; i++)
25       { cin>>k; cout<<a[k]<<endl;}
26     system("pause");
27     return 0;
28 }
29 

posted on 2010-06-13 19:46 田兵 阅读(139) 评论(0)  编辑 收藏 引用 所属分类: URAL


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿(2)

随笔分类(65)

随笔档案(65)

文章档案(2)

ACM

搜索

积分与排名

最新随笔

最新评论

阅读排行榜