线性筛素数

题目描述

如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)

输入输出格式

输入格式:

第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。

接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数。

输出格式:

输出包含M行,每行为Yes或No,即依次为每一个询问的结果。

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n,m,s,t;
int search(int m)
{
	if(m==1||m==0)
	{
		return 1;
	}
	if(m==2)
	{
		return 0;
	}
	for(register int b=2;b<=sqrt(m);b++)
	{
		if(s%b==0)
		{
			return 1;
		}
	}
}
int main()
{
	cin>>n>>m;
	for(register int a=1;a<=m;a++)
	{
		cin>>s;
		t=search(s);
		if(t==1)
		{
			cout<<"No"<<endl;
		}
		else
		{
			cout<<"Yes"<<endl;
		}
		t=0;
	}
}


原文地址:https://www.cnblogs.com/ztz11/p/9190001.html