poj 3518(筛选素数)

来源:互联网 发布:图书数据采集器 编辑:程序博客网 时间:2024/05/16 09:12
#include <cstdio>#include<iostream>#include<cstring>using namespace std;#define maxlen 1300000bool a[maxlen];inline void isp(){    memset(a,1,sizeof(a));    a[0]=a[1]=0;    for(int i=2;i*i<maxlen;i++)        if(a[i])            for(int j=i*i;j<maxlen;j+=i)                a[j]=0;}int main(int argc, char** argv) {    int  m,ans,i;    isp();    while(scanf("%d",&m) && m){        if(a[m]){            printf("0\n"); continue;        }        i=ans=m;        while(!a[ans]) ans++;        while(!a[i]) i--;        ans-=i;        printf("%d\n",ans);    }    return 0;}