/*
* POJ_3518.cpp
*
* Created on: 2013年10月7日
* Author: Administrator
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1299710;
bool u[maxn];
int ans[maxn];
void prepare(){
int i,j,k;
memset(u,true,sizeof(u));
for(i = 2 ; i < maxn ; ++i){
if(u[i]){
for(j =2 ; j*i < maxn ; ++j){
u[j*i] = false;
}
}
}
for(i = 2 ; i < maxn ;++i){
if(!u[i]){
j = i;
while(j <maxn && !u[j]){
j++;
}
--j;
for(k = i ; k <= j ; ++k){
ans[k] = j - i + 2;
}
i = j;
}else{
ans[i] = 0;
}
}
}
int main(){
prepare();
int n;
while(scanf("%d",&n)!=EOF,n){
printf("%d\n",ans[n]);
}
return 0;
}
(数论2.1.4)POJ3518 Prime Gap(埃拉托斯特尼筛法)
最新推荐文章于 2024-07-08 07:52:22 发布