其他分享
首页 > 其他分享> > 数学知识板子 / Math(updating)

数学知识板子 / Math(updating)

作者:互联网

埃氏筛(朴素筛法求素数):

int prime[N], tot;
bool st[N]; // true:not prime, false:is prime

void get_primes(int n)
{
    st[1] = true;
    for(int i = 2; i <= n; i++)
    {
        if(!st[i])
        {
            prime[++tot] = i;
            for(int j = i + i; j <= n; j += i) st[j] = true;
        }
    }
}

 

欧拉筛(线性筛法求素数):

int prime[N], tot;
bool st[N]; // true:not prime, false:is prime

void get_primes(int n)
{
    st[1] = true;
    for(int i = 2; i <= n; i++)
    {
        if(!st[i]) prime[++tot] = i;
        for(int j = 1; i * prime[j] <= n; j++)
        {
            st[i * prime[j]] = true;
            if(i % prime[j] == 0) break;
        }
    }
}

 

标签:prime,get,int,tot,st,updating,数学知识,true,Math
来源: https://www.cnblogs.com/jakon/p/15861941.html