问题标题: 酷町堂:6592 素数查找

0
0
已解决
潘耀杰
潘耀杰
新手守护
新手守护

题目链接: 酷町堂:6592

题目描述 De**ion

酷町猫在和他的小伙伴们玩游戏,游戏规则是,给定范围n,查询次数为q次,每次查询后输出第k小的素数

输入描述 Input De**ion

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

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

输出描述 Output De**ion

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

样例输入 Sample Input

100 5 1 2 3 4 5

样例输出 Sample Output

2 3 5 7 11

数据范围及提示 Data Size & Hint

对于 20% 的数据:
1≤n≤10000
对于 70% 的数据:
10000000≤n≤100000000
对于 100% 的数据:
1≤n≤100000000
1≤q≤106
保证查询的素数不大于n。

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

bool s(long long n){
    if(n<=1) return false;
    for(long long i=2; i<=sqrt(n); i++){
        if(n%i==0){
            return false;
        }
    }
    return true;
}
long long n,q,k;
int main(){
      cin>>n>>q;
      for(long long i=1; i<=q; i++){
          long long cnt=0;
          cin>>k;
          for(long long j=1; j<=n; j++){
              if(s(j)){
                  cout<<j<<"\n";    
              break;
            }
        }
    }
    return 0;
}

求帮助!(不许水!)


0
0
0
程安琪
程安琪
资深守护
资深守护

用埃氏筛法就可以AC了

0
0
0
陶欣怡
陶欣怡
资深守护
资深守护

这道题数据过大,是需要用埃氏筛法的

我要回答