我用欧式筛写素数个数这道题,最后一个点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;
}
也不知道是用
scanf("%lld",&n);
printf("%lld",cnt);
快
还是
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
这样快
或者是有其他什么原因,求助!!!