P3912题素数个数,用欧式筛法做最后一个测试点mle,求助,悬关
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e8;
bool vis[N];
int prime[10000005],cnt;
void init(int x){
for(int i=2;i<=x;i++){
if(vis[i]==true){
continue;
}
for(int j=i*i;j<=x;j=j+i){
vis[j]=true;
}
}
for(int i=2;i<=x;i++){
if(vis[i]==false){
cnt++;
prime[cnt]=i;
}
}
}
signed main(){
// ios::sync_with_stdio(false);
// cin.tie(0);
// cout.tie(0);
int n;
// cin>>n;
scanf("%lld",&n);
init(n);
printf("%lld",cnt);
// cout<<cnt;
return 0;
}