线性筛法求素数

题目链接

P3383 【模板】线性筛素数


P3383 【模板】线性筛素数

题目描述

如题,给定一个范围 n,有 q 个询问,每次输出第 k 小的素数。

输入格式

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

接下来 q 行每行一个正整数 k,表示查询第 k 小的素数。

输出格式

输出 q 行,每行一个正整数表示答案。

输入

100 5 1 2 3 4 5

输出

2 3 5 7 11

说明/提示

【数据范围】
对于 100% 的数据,n=1081q106 ,保证查询的素数不大于 n

代码

  • 时间复杂度:O(n)
#include<bits/stdc++.h> using namespace std; int n,q,k; int prime[6000010]; int v[100000010]; int m; void primes(int n) { for(int i=2;i<=n;i++) { if(!v[i]) { v[i]=i; prime[++m]=i; } for(int j=1;j<=m;j++) { if(v[i]<prime[j]||prime[j]*i>n)break; v[i*prime[j]]=prime[j]; } } } int main() { scanf("%d%d",&n,&q); primes(n); while(q--) { scanf("%d",&k); printf("%d\n",prime[k]); } return 0; }

__EOF__

本文作者acwing_zyy
本文链接https://www.cnblogs.com/zyyun/p/15317986.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   zyy2001  阅读(70)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示