筛选求n以内素数并返回个数
#include <iostream> using namespace std; const int maxn=10000; int prime[maxn]; bool is_prime[maxn+1]; int sieve(int n)//返回n以内素数的个数 { int p=0; for(int i=0;i<=n;i++) is_prime[i]=true; is_prime[0]=is_prime[1]=false; for(int i=2;i<=n;i++) { if(is_prime[i]) { prime[p++]=i; for(int j=2*i;j<=n;j+=i) is_prime[j]=false; } } return p; } int main() { int len=sieve(10); cout<<"10以内的素数的个数为: "<<len<<endl; cout<<"它们分别是: "<<endl; for(int i=0;i<len;i++) cout<<prime[i]<<endl; return 0; }