int prime[MAXN];
bool is_prime[MAXN + 1];
//埃氏筛法,返回n以内的素数个数
//O(nloglogn),可近似认为是线性的
int prime_num(int n)
{
int p = 0;
for(int i = 0;i <= n;i++)
is_prime[i] = 1;
is_prime[0] = is_prime[1] = 0;
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] = 0;
}
}
return p;
}
埃氏筛法 筛素数
最新推荐文章于 2024-06-10 19:32:44 发布