1 //埃拉托斯特尼筛法
2
3 int prime[maxx];
4 bool is_prime[maxx+1];//is_prime[i]为true表示i为素数
5
6 //返回n以内素数的个数
7 int sieve (int n)
8 {
9 int p=0;
10 for(int i=0; i<=n; i++) is_prime[i]=1;
11 //memset(is_prime,1,sizeof(is_prime));
12 is_prime[0]=is_prime[1]=0;
13 for(int i=2;i<=n;i++)
14 {
15 if(is_prime[i])
16 {
17 prime[p++]=i;
18 for(int j=2*i;j<=n;j+=i) is_prime[j]=0;
19 }
20 }
21 return p;
22 }
时间: 2024-10-11 23:48:39