COJ 1030 素数槽

http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1030

用线性筛素数果然快多了。

 

#include<cstdio>

#include<cstring>

#include<cstdlib>

#define MAXN 1300000

bool is_p[MAXN];



void calc()

{

    for( int i = 1; i < MAXN; i ++)

        is_p[i] = true;

    is_p[1] = false;

    for( int i = 2; i < MAXN; i ++)

    {

        if( !is_p[i]) continue;

        for( int j = 2; i * j < MAXN; j ++)

            is_p[i * j] = false;

    }

}



int main()

{

    int n, k, cnt;

    calc();

    scanf( "%d", &n);

    while( n --)

    {

        scanf( "%d", &k);

        cnt = 0;

        for( int i = k; !is_p[i]; i ++)

            cnt ++;

        for( int i = k; !is_p[i]; i --)

            cnt ++;

        printf( "%d\n", cnt);

    }

    return 0;

}

 

 

 

你可能感兴趣的:(素数)