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

时间:2020-01-31 15:51:26   收藏:0   阅读:76
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;
            }
        }
    }
}

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!