埃氏筛法
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 const int MAX_N=10005; 6 7 int prime[MAX_N]; //第i个素数 8 bool is_prime[MAX_N+1]; //is_Prime[i]为true表示i是素数 9 10 int sieve(int n) 11 { 12 int p=0; 13 for(int i = 0; i <= n; i++) is_prime[i]=true; 14 is_prime[0]=is_prime[1]=false; 15 for(int i = 2; i <= n; i++) 16 { 17 if(is_prime[i]) 18 { 19 prime[p++]=i; 20 for(int j = 2*i; j <= n; j+=i) is_prime[j]=false; 21 } 22 } 23 return p; 24 } 25 26 int main() 27 { 28 //请输入你要筛选的范围 29 int m; 30 cin>>m; 31 int q=sieve(m); 32 cout<<q<<endl; //输出在m下边的素数的个数(包括m) 33 }