#S00038. 线性筛素数

线性筛素数

题目描述

如题,给定一个范围 nn,有 qq 个询问,每次输出第 kk 小的素数。

输入格式

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

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

输出格式

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

100 5
1
2
3
4
5
2
3
5
7
11

数据范围

对于 100%100\% 的数据,1n5×1061 \le n \le 5\times 10^61q2×1051 \le q \le 2\times 10^5,保证查询的素数不大于 nn

提示

  • 暴力判断的复杂度为 O(nn)O(n\sqrt n)
  • 埃氏筛(调和级数)的复杂度为 O(nlogn)O(nlogn)
  • 线性筛的复杂度为 O(n)O(n)