模板数学线性筛求莫比乌斯函数

Posted xiaobuxie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板数学线性筛求莫比乌斯函数相关的知识,希望对你有一定的参考价值。

void init(){           //莫比乌斯函数线性筛
    memset( prime , 0 , sizeof(prime) );
    memset( mu , 0 , sizeof(mu) );
    memset( vis , 0 , sizeof(vis) );
    mu[1] = 1 ;
    cnt = 0 ;
    for( int i = 2 ; i < AX ; i++ ){
        if( !vis[i] ){
            prime[cnt++] = i ;
            mu[i] = -1;
        }
        for( int j = 0 ; j < cnt && i * prime[j] < AX ; j++ ){
            vis[i*prime[j]] = 1 ;
            if( i % prime[j] ){
                mu[i*prime[j]] = -mu[i];
            }else{
                mu[i*prime[j]] = 0 ;
                break;
            }
        }
    }
}

 

以上是关于模板数学线性筛求莫比乌斯函数的主要内容,如果未能解决你的问题,请参考以下文章

hdu1695 GCD(莫比乌斯反演)

莫比乌斯函数 性质

莫比乌斯反演

模板 - 数学 - 数论 - 线性筛

模板莫比乌斯反演(ACWing215)

欧拉筛线性处理莫比乌斯函数