您的位置:首页 > 其它

[51nod1181]质数中的质数(素数筛法)

2017-05-27 18:55 190 查看

解题关键: 注意下标

#include<bits/stdc++.h>
#define maxn 10000002
using namespace std;
typedef long long ll;
bool is_prime[maxn+2];
int prime[maxn+2];
int sieve(){
int p=0;
fill(is_prime,is_prime+maxn,true);
is_prime[0]=is_prime[1]=false;
for(int i=2;i<maxn;i++){
if(is_prime[i]){
prime[p++]=i;
for(int j=2*i;j<=maxn;j+=i){
is_prime[j]=false;
}
}
}
return p;
}
int main(){
int p=sieve();
int n;
cin>>n;
int t1=lower_bound(prime,prime+p,n)-prime+1;
int t2=lower_bound(prime,prime+p,t1)-prime;
cout<<prime[prime[t2]-1]<<endl;
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: