RE求助!
查看原帖
RE求助!
334099
陈雨霁楼主2020/11/5 08:46
#include<bits/stdc++.h>
using namespace std;
int n,q,k;
template<typename T>
inline void read(T &x)
{
    x=0;T f=1;char c=getchar();
    for(;c<'0'||c>'9';c=getchar())if(c=='-')f=-1;
    for(;c>='0'&&c<='9';c=getchar())x=x*10+c-'0';
    x*=f;
}
int prime[100000007];
bool isprime[1000010];
void Getprime(int x)
{
	int cnt=0;
	memset(isprime,1,sizeof(isprime));
	isprime[1]=0;
	for(int i=2;i<=n;i++)
	{
		if(isprime[i]==1)
			prime[++cnt]=i;
		for(int j=1;j<=cnt&&i*prime[j];j++)
		{
			isprime[i*prime[j]]=0;
			if(i%prime[j]==0)	break;
		}
	}
	
}
int main()
{
//	freopen("prime.in","r",stdin);
	read(n);read(q);
	Getprime(n);
	while(q--)
	{
		read(k);
		cout<<prime[k]<<endl;
	}
	return 0;
}
2020/11/5 08:46
加载中...