Prime Gap

2014-11-23 23:36:44 · 作者: · 浏览: 3
 
// File Name: poj3518.cpp  
// Author: bo_jwolf  
// Created Time: 2013年10月11日 星期五 15:46:48  
  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
  
using namespace std;  
const int maxn = 1399709;  
vector< int > prime;  
int unprime[ maxn ];  
  
void Union(){  
    memset( unprime, 0, sizeof( unprime ) );  
    unprime[ 0 ] = unprime[ 1 ] = true;  
    for( int i = 2; i < maxn; ++i ){  
        if( !unprime[ i ] ){  
            prime.push_back( i );  
            for( int j = i + i; j < maxn; j += i ){  
                unprime[ j ] = true;  
            }  
        }  
    }  
}  
  
int main(){  
    Union();  
    int n, l, r, mid;  
    while( cin >
> n ){ if( !n ) break; int ans = 0; l = 0; r = prime.size() - 1; for( int i = 0; i < prime.size(); ++i ){ if( prime[ i ] < n && prime[ i + 1 ] > n ){ ans = prime[ i + 1 ] - prime[ i ]; } } cout << ans << endl; } return 0; }