Luogu 3383(线性筛)

来源:互联网 发布:linux判断文本内容换行 编辑:程序博客网 时间:2024/06/05 13:23

传送门

模板题。好奇NOIP会不会考用线性筛求一个化简过程中遇到的积性函数疑问

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int N=1e7+4;int prime[N/10],tot=0;bool vis[N];inline void linear_shaker(int n) {vis[1]=true;for (register int i=2;i<=n;++i) {if (!vis[i]) prime[++tot]=i;for (int j=1;j<=tot&&i*prime[j]<=n;++j) {vis[i*prime[j]]=true;if (i%prime[j]==0) break;}}}int n,q;int main() {scanf("%d%d",&n,&q);linear_shaker(n);for (register int i=0;i<q;++i) {int x;scanf("%d",&x);puts(!vis[x]?"Yes":"No");}return 0;}


原创粉丝点击