道理我都懂,但是为什么一直re???

P3383 【模板】线性筛素数

Love_Haruka @ 2024-11-09 19:21:38

rt

最开始我还以为是用了vector的原因(现数组pri)

结果改了还是不对

不用考虑埃氏筛算法对于此题的正确性,我就是想知道为什么RE/kk

#include<bits/stdc++.h>
using namespace std;
bool prime[100000001];
int pri[100000001];
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0); 
    int n,m;
    cin >> n >> m;
    prime[0]=prime[1]=0;
    int u=0;
    for(int i=2;i<=n;i++)prime[i]=1;
    for(int i=2;i<=n;i++){
        if(prime[i]){
            pri[++u]=i;
            for(long long j=i*i;j<=n;j+=i){
                prime[j]=0;
            }
        }
    }
    for(int i=0;i<m;i++){
        int x;
        cin >> x;
        cout << pri[x] <<"\n"; 
    }
    return 0;
}

by and_why @ 2024-11-17 13:54:29

这里,第16,17行改一下就过了,虽然我也不知道为什么


|