数据结构做不动了,来道水题。。
#include<bits/stdc++.h>
using namespace std;
int a[100100];
void prime_print(){
int i, j, temp;
a[0] = 2;a[1] = 3;
for(i = 5, temp = 2; i< 1300000; i += 2){
int flag = 1;
for(j = 1; a[j]*a[j] <= i; ++j)
if(i%a[j] == 0) { flag = 0; break; }
if(flag) a[temp++] = i;
}
}
int main(){
prime_print();
int n;
while(scanf("%d",&n)!=EOF&&n){
int p=lower_bound(a,a+100000,n) - a;
if(a[p]==n) printf("%d\n",0);
else printf("%d\n",a[p]-a[p-1]);
}
return 0;
}