首页 > 代码库 > 蚂蚁的腿

蚂蚁的腿

描述

 

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

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

 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 }

 

 

蚂蚁的腿