蚂蚁的腿

描述

 

健康快乐的小蚂蚁最近从地球坐光速飞船来到了宇宙总部,可是身体发生了一点变化(医生说可能是宇宙中的奇异射线造成的)
具体来说就是蚂蚁多长了好多腿,而且每天早上起来的时候发现腿的总数还不一样,这个和它来到宇宙总部的天数有关系。
它通过统计发现第一天早上有2条腿,第二天早上有2条腿,第三天早上有3条腿,第四天早上有5条腿...
它统计了前201天的情况,惊讶的发现这每天早上的腿数目跟素数有关系,其恰好是大于等于来宇宙总部天数的最小素数。
有了这些统计资料,他想知道第N天早上它有多少腿。

 
输入
第一行一个整数 T 表示T组数据 (T <= 10000)
接下来T行,一行一个整数N (0 <= N <= 1000000)
输出
一行一个整数
样例输入
2
1
2
样例输出
2
2

 1 #include <stdio.h>   
 2 #include <string.h>
 3 #define N 1000010
 4 
 5 int flag[N];
 6 
 7 int main(){
 8     int T;
 9     int i;
10     int j;
11     int n;
12     int leg;
13     
14     memset(flag,0,sizeof(int)*N);
15     flag[0]=1;
16     flag[1]=1;
17     
18     for(i=2;i*i<N;i++){
19         if(flag[i]==0){
20             for(j=i*i;j<N;j+=i)
21                 flag[j]=1;
22         }
23     }
24     
25     scanf("%d",&T);
26     
27     while(T--){
28         scanf("%d",&n);
29         
30         if(n==0){   //一开始没有注意到n可能为0的情况,错了好多次。。。
31             printf("6\n");
32             continue;
33         }
34         
35         while(1){
36             if(flag[n]==0){
37                 leg=n;
38                 break;
39             }
40             n++;
41         }
42         printf("%d\n",leg);
43     }
44     return 0;
45 }

 

 
posted @ 2014-11-16 18:20  zqxLonely  阅读(1013)  评论(0编辑  收藏  举报