欧拉筛 TLE 0pts 玄关
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/9/29 08:56
  • 上次更新2024/9/29 09:30:12
查看原帖
欧拉筛 TLE 0pts 玄关
737097
封禁用户楼主2024/9/29 08:56

题目

#include<bits/stdc++.h>
using namespace std;
inline int in()
{
	int k=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		k=k*10+c-'0';
		c=getchar();
	}
	return k*f;
}
inline void out(int x)
{
	if(x<0) putchar('-'),x=-x;
	if(x<10) putchar(x+'0');
	else out(x/10),putchar(x%10+'0');
}
const int maxn=1e8+5;
bitset<maxn> num;
vector<int> prime;
inline void inle(int n)
{
	for (int i = 2; i <= n; ++i)
    {
        if (!num[i]) prime.push_back(i);
        for (int j = 0; j < prime.size(); ++j)
        {
            if (i * prime[j] >= n) break;
            num[i * prime[j]] = 1;
            if(i % prime[j] == 0)  break;
        }
    }
}
int main()
{
	int n,q,x;
	n=in();q=in();
	inle(n);
	for(int i=1;i<=n;i++)
	{
		x=in();
		printf("%d \n",prime[x-1]);
	}
	return 0;
}
2024/9/29 08:56
加载中...