[模板][洛谷P3383]线性筛素数

题目←

#include<iostream>
#include<cstdio>
#define LL long long
int n,m;
int prime[10000010],cnt;
bool sh[10000010];
void solve(int n){
	for(int i = 2;i <= n;i ++){
		if(!sh[i])prime[++cnt] = i;
		for(int j = 1;j <= cnt && i*prime[j] <= n;j ++){
			sh[i*prime[j]] = true;
			if(i%prime[j] == 0)break;//每个数只能被它最小的质因子删去
		}
	}
}
int x;
int main(){
	scanf("%d%d",&n,&m);
	sh[1] = true;
	solve(n);
	for(int i = 1;i <= m;i ++){
		scanf("%d",&x);
		if(sh[x])printf("No\n");
		else printf("Yes\n");
	}
}
posted @ 2017-11-02 08:39  _平行  阅读(142)  评论(0)    收藏  举报