/**********
author:chanjun2016
email:15755396353@163.com
***********/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <algorithm>
using namespace std;
#define INF = 0x3f3f3f3f
const int maxn = 13e5;
int vis[maxn + 10];
set<int> S;
void init(){
int q = sqrt(maxn + 0.5);
for (int i = 2;i <= q; ++i){
if (!vis[i]){
for (int j = i * i; j <= maxn; j += i){
vis[j] = 1;
}
}
}
for (int i = 2;i <= maxn; ++i){
if (!vis[i]){
S.insert(i);
}
}
}
int main(){
int n;
init();
while (scanf("%d",&n),n > 0){
auto begin = lower_bound(S.begin(),S.end(),n);
if (*begin == n){
printf("0\n");
}else{
auto end = *begin;
printf("%d\n", end - *--begin);
}
}
return 0;
}
uva1644
最新推荐文章于 2018-08-24 20:09:00 发布