社区讨论

复习模板的时候发现个神奇的事情

P3383【模板】线性筛素数参与者 6已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lod5hqvm
此快照首次捕获于
2023/10/31 01:05
2 年前
此快照最后确认于
2023/11/05 11:30
2 年前
查看原帖
CPP
#include<cstdio>
using namespace std;


int prime[1000001], h = 0;
int vis[100000001];

int main ()
{
	int n, q, x;
	scanf("%d%d", &n, &q);

    vis[1] = 1;
	for(int i = 2; i <= n; i++)
	{
		if(!vis[i])
            prime[h++] = i;
		for(int j = 0; j < h && i * prime[j] < n; j++)
		{
			vis[i*prime[j]] = 1;
			if (i % prime[j] == 0)
                break;
		}
	}
	for(int i = 1; i <= q; i++)
	{
		scanf("%d",&x);
		printf("%d\n",prime[x-1]);
	}
	return 0;
}

我先开 prime 数组,然后提交就是 RE
CPP
#include<cstdio>
using namespace std;

int vis[100000001];
int prime[1000001], h = 0;

int main ()
{
	int n, q, x;
	scanf("%d%d", &n, &q);

    vis[1] = 1;
	for(int i = 2; i <= n; i++)
	{
		if(!vis[i])
            prime[h++] = i;
		for(int j = 0; j < h && i * prime[j] < n; j++)
		{
			vis[i*prime[j]] = 1;
			if (i % prime[j] == 0)
                break;
		}
	}
	for(int i = 1; i <= q; i++)
	{
		scanf("%d",&x);
		printf("%d\n",prime[x-1]);
	}
	return 0;
}

就很神奇
但是我先开 vis 数组,提交就能 AC

回复

6 条回复,欢迎继续交流。

正在加载回复...