P3383 【模板】线性筛素数

解题思路

素数 指只有 11 和它本身 22 个因数的自然数。

可使用 欧拉筛法 。

复杂度 O(n)O(n)

另外 11 不是素数, 要特判一下。

AC CODE

#include<bits/stdc++.h>
using namespace std;

bool isPrime[100000010];
int Prime[6000010], cnt = 0;

void GetPrime(int n)
{
	memset(isPrime, 1, sizeof(isPrime));
	isPrime[1] = 0;
	
	for(int i = 2; i <= n; i++)
	{
		if(isPrime[i])
			Prime[++cnt] = i;
			
		for(int j = 1; j <= cnt && i * Prime[j] <= n; j++) 
		{
			isPrime[i * Prime[j]] = 0;
			if(i % Prime[j] == 0)
				break;
		}
	}
}

signed main()
{
	int n, q;
	scanf("%d %d", &n, &q);
	GetPrime(n);
	while (q--)
	{
		int k;
		scanf("%d", &k);
		printf("%d\n", Prime[k]);
	}
	return 0;
}
posted @   蒟蒻orz  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示