1 #include<stdio.h>
2 #define range 1300000
3 #define BOOL int //必须把bool,true,false这样表示出来,不然会报编译错误...不知道为什么囧...
4 #define true 1
5 #define false 0
6 BOOL p[range];
7 void judge () //筛法求素数
8 {
9 int i,j;
10 //long m;
11 p[0]=false;p[1]=true;
12 for(i=2;i<=range;i++)
13 {
14 p[i]=true;
15 }
16 for(i=2;i<=range;i++)
17 {
18 if(p[i])
19 for(j=2*i;j<=range;j+=i)
20 {
21 p[j]=false;
22 }
23 }
24 }
25 int main()
26 {
27 int n;
28 scanf("%d",&n);
29 judge();
30 while(n--)
31 { int i,j;
32 long m;
33 scanf("%ld",&m);
34 if(p[m]==true)
35 printf("0\n");
36 else
37 {
38 for(i=m;;i--)
39 if(p[i]==true)
40 {
41 break;
42 }
43 for(j=m;;j++)
44 if(p[j]==true)
45 {
46 break;
47 }
48 printf("%d\n",j-i);
49 }
50 }
51 }