蚂蚁的腿
描述
健康快乐的小蚂蚁最近从地球坐光速飞船来到了宇宙总部,可是身体发生了一点变化(医生说可能是宇宙中的奇异射线造成的)
具体来说就是蚂蚁多长了好多腿,而且每天早上起来的时候发现腿的总数还不一样,这个和它来到宇宙总部的天数有关系。
它通过统计发现第一天早上有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 }