当前位置: 首页 > news >正文

题解:洛谷 P3383 【模板】线性筛素数

【题目来源】

洛谷:P3383 【模板】线性筛素数 - 洛谷

【题目描述】

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

【输入】

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

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

【输出】

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

【输入样例】

100 5
1
2
3
4
5

【输出样例】

2
3
5
7
11

【算法标签】

《洛谷 P3383 线性筛素数》 #数学# #素数判断,质数,筛法# #O2优化#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 1e8 + 5;  // 数组最大容量
int vis[N];  // 标记数组,0表示质数,1表示合数
int prim[N];  // 存储质数的数组
int cnt;  // 质数个数计数器
int n, q;  // n: 范围上限,q: 查询次数// 线性筛法(欧拉筛)获取质数
void get_prim(int n)
{for (int i = 2; i <= n; i++){if (!vis[i])  // 如果i是质数{prim[++cnt] = i;  // 将i存入质数数组}for (int j = 1; i * prim[j] <= n; j++)  // 筛去i*prim[j]{vis[i * prim[j]] = 1;  // 标记i*prim[j]为合数if (i % prim[j] == 0)  // 关键优化:保证每个合数只被最小质因子筛去{break;}}}
}int main()
{// 关闭同步流,加速输入输出// ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);get_prim(N);  // 筛选出所有质数cin >> n >> q;  // 读入范围上限和查询次数while (q--){int k;cin >> k;  // 读入查询编号cout << prim[k] << endl;  // 输出第k个质数}return 0;
}
// 使用acwing模板二刷
#include <bits/stdc++.h>
using namespace std;const int N = 100000005;  // 数组最大容量
int n, q, cnt;  // n: 范围上限,q: 查询次数,cnt: 质数计数器
int primes[N];  // 存储质数的数组
bool st[N];  // 标记数组,false表示质数,true表示合数// 线性筛法(欧拉筛)获取质数
void get_primes(int n)
{for (int i = 2; i <= n; i++){if (!st[i])  // 如果i是质数{primes[++cnt] = i;  // 将i存入质数数组}for (int j = 1; primes[j] <= n / i; j++)  // 筛去primes[j]*i{st[primes[j] * i] = true;  // 标记primes[j]*i为合数if (i % primes[j] == 0)  // 关键优化:保证每个合数只被最小质因子筛去{break;}}}
}int main()
{cin >> n >> q;  // 读入范围上限和查询次数get_primes(N);  // 筛选出所有质数while (q--){int k;cin >> k;  // 读入查询编号cout << primes[k] << endl;  // 输出第k个质数}return 0;
}

【运行结果】

100 5
1
2
2
3
3
5
4
7
5
11
http://www.jsqmd.com/news/392405/

相关文章:

  • 快速制作 虚拟形象项目 MotionPNGTuber
  • 软件测试一篇通
  • 题解:洛谷 P2822 [NOIP 2016 提高组] 组合数问题
  • 【RL+MCS】基于深度强化学习的能效链路自适应联合功率分配与调制编码方案选择【附MATLAB代码】
  • 学会正确看待自己的工作
  • ISAC波形设计新突破!概率去噪增强的PDISAC兼顾感知与通信双性能【附MATLAB+pyython代码】
  • 题解:洛谷 P1983 [NOIP 2013 普及组] 车站分级
  • 这几天的大模型圈,真的有点“卷”过头了
  • 企业H5站点升级PWA (五)
  • 题解:洛谷 P1017 [NOIP 2000 提高组] 进制转换
  • 企业H5站点升级PWA (六)
  • 企业H5站点升级PWA (七)
  • 企业H5站点升级PWA (四)
  • 题解:洛谷 P3916 图的遍历
  • 【硬盘】个人数据备份的各种方式##37
  • 题解:洛谷 P5318 【深基18.例3】查找文献
  • 题解:洛谷 P4017 最大食物链计数
  • 题解:洛谷 P1113 杂务
  • 别只会用 getData!Watcher 注册源码流程全拆解
  • Java线程解析:5种线程创建方法及应用场景 - 指南
  • 题解:洛谷 P2814 家谱
  • 题解:洛谷 P3879 [TJOI2010] 阅读理解
  • 2024 年 09 月 二级真题(1)--数位之和
  • 2026年龙岩连城长汀红白喜事鼓吹铜管乐队演出推荐:客家非遗与市场化服务的平衡之选 - 小白条111
  • 题解:洛谷 P4305 [JLOI2011] 不重复数字
  • 12:内核ROP与提权技术
  • 13:现代内核保护机制与绕过技术
  • 14:跨架构内核漏洞利用差异
  • 超市在线销售与分析|基于Python + Django超市在线销售与分析系统(源码+数据库+文档)
  • AI知识图谱构建:企业智能搜索的底层架构