全WA求调
查看原帖
全WA求调
1031719
_madeline_楼主2024/11/27 10:38
#include <iostream>
#include <malloc.h>
#include <string.h>
using namespace std;
int qr();
int main(){
    int n=qr(),q=qr();
    bool *isPrime=(bool*)malloc(sizeof(bool)*1e8);
    memset(isPrime,1,sizeof(bool)*1e8);
    int *prime=(int*)malloc(sizeof(int)*1e7);


    int index=0;
    for(int i=2;i<n;i++){
        if(isPrime[i])prime[++index]=i;

        for(int j=1;j<=index&&prime[j]*i<n;j++){
            isPrime[prime[j]*i]=false;
            if(i%prime[j]==0)break;
        }
    }

    int num=0;
    for(int i=0;i<q;i++){
        num=qr();
        cout<<prime[num]<<endl;
    }

}
int qr(){
    int res=0;
    char mid=getchar();
    while(mid<='9'&&mid>='0'){
        res*=10;
        res+=mid-'0';
        mid=getchar();
    }
    return res;
}
2024/11/27 10:38
加载中...