用的埃氏筛,想问一下为啥循环不用ll就RE?
查看原帖
用的埃氏筛,想问一下为啥循环不用ll就RE?
1215295
discretely楼主2024/7/17 21:46

循环i为啥用int也不行,不久循环到1e8吗?

#include<iostream>
using namespace std;


const int N=1e8+10;
bool vis[N];
int cnt=0;
int prim[N];

void init(int n){
    for(int i=2;i<=n;++i){//问的是这里
        if(!vis[i]){
            prim[++cnt]=i;
            for(long long j=i*i;j<=n;j+=i) vis[j]=1;
        }
    }
}

signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int n,q;cin>>n>>q;
    init(n);
    for(int i=1;i<=q;++i){
        int x;cin>>x;
        cout<<prim[x]<<endl;
    }
    //cout<<cnt<<endl;

    return 0;
}
2024/7/17 21:46
加载中...