即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

CSU素数槽 判断多个素数怎么不超时(素数筛选)

编程语言 qq_36300700 14℃ 0评论
题目链接http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1030


#include 
#include
#include
#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;
}

转载请注明:CodingBlog » CSU素数槽 判断多个素数怎么不超时(素数筛选)

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情