您的位置:首页 > 其它

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

2017-06-07 16:36 225 查看
题目链接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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: