标签:
1 不会重复筛除,是线性O(n)的复杂度。 2 3 const int MAXN=3000001; 4 int prime[MAXN];//保存素数 5 bool vis[MAXN];//初始化 6 void Prime(int n) 7 { 8 int cnt=0; 9 memset(vis,0,sizeof(vis)); 10 for(int i=2;i<n;i++) 11 { 12 if(!vis[i]) 13 prime[cnt++]=i; 14 for(int j=0;j<cnt&&i*prime[j]<n;j++) 15 { 16 vis[i*prime[j]]=1; 17 if(i%prime[j]==0)//关键 18 break; 19 } 20 } 21 return cnt;//返回小于n的素数的个数 22 }
标签:
原文地址:http://www.cnblogs.com/by-1075324834/p/4833854.html