题解·51 nod 1181
水题·
埃氏筛法打表就出来了
#include <iostream> #include <cstdio> using namespace std; const int maxn=1005000; int num[1005005]; int s[1005000]; void sushu() //素数打表埃氏筛法 { for(int i=0;i<maxn;i++) s[i]=i; s[0]=0;s[1]=0; for (int i = 2; i<maxn; i++) if (s[i]) for (int j = i + i; j<maxn; j += i) s[j] = 0; } int main() { sushu(); int k=1; for(int i=0;i<1005000;i++) { if(s[i]!=0) { num[k]=s[i]; k++; } } for(int i=1;i<k;i++) { if(s[i]==0) num[i]=0; } int n; cin>>n; for(int i=1;i<k;i++) { if(num[i]>=n) { cout<<num[i]<<endl; break; } } }

浙公网安备 33010602011771号