数论——【模板】线性筛素数

来源:互联网 发布:python win32api 截屏 编辑:程序博客网 时间:2024/05/22 03:50

题目来源

洛谷P3383【模板】线性筛素数

https://www.luogu.org/problem/show?pid=3383


思路

线性筛素数模板题

时间复杂度:O(n)


代码(C++)

#include <cstdio>#include <bitset>using namespace std;bitset<10000010> g;int n,m,x,p[1000010],top=0;int main(){scanf("%d%d",&n,&m);g[0]=1;g[1]=1;for(int i=2;i<=n;++i){if(g[i]==0)p[++top]=i;for(int j=1;j<=top&&p[j]*i<=n;++j){g[i*p[j]]=1;if(i%p[j]==0)break;}}for(int i=1;i<=m;++i){scanf("%d",&x);if(g[x])printf("No\n");elseprintf("Yes\n");}return 0;}