莫比乌斯函数

唯一分解定理

n=i=1spiai=p1a1p2a2···psas

莫比乌斯函数的定义

μ(n)={1n=1 0n (1)ssn

例:μ{1,6,10,15}=1, μ{4,8,9,12}=0, μ{2,3,5,7,30}=1

筛法求莫比乌斯函数

若i是质数,μ[i]=1

在线性筛中,每一个合数 m 都是被最最小的质因子筛掉的。

pjm 的最小质因子,则 m 通过 m=j×pj 筛掉

i 能被 pj 整除,则 i 也包含质因子 。
μ[m]=0
i 不能被 pj 整除,则 mi 多一个不同质因子 pj
μ[i]=1,则 μ[m]=1
μ[i]=1,则 μ[m]=1
μ[i]=0,则 μ[m]=0
所以 μ[m]=μ[i]

const int N = 1000010;
int p[N], vis[N], cnt;
int mu[N];

void get_mu(int n){      //筛法求莫比乌斯函数
  mu[1] = 1;
  for(int i=2; i<=n; i++){
    if(!vis[i]){
      p[++cnt] = i;
      mu[i] = -1;
    }
    for(int j=1; i*p[j]<=n; j++){
      int m = i*p[j]; 
      vis[m] = 1;
      if(i%p[j] == 0){
        mu[m] = 0;
        break;
      } 
      else
        mu[m] = -mu[i];
    }
  }
}
posted @   wqzgg  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示