莫比乌斯函数:
void get_mu(int n) { mu[1]=1; for(int i=2;i<=n;i++) { if(!vis[i]){prim[++cnt]=i;mu[i]=-1;} for(int j=1;j<=cnt&&prim[j]*i<=n;j++) { vis[prim[j]*i]=1; if(i%prim[j]==0)break; else mu[i*prim[j]]=-mu[i]; } } }
莫比乌斯反演:
参考
posted on 2018-10-01 17:29 solvit 阅读(98) 评论(0) 编辑 收藏 举报
Powered by: 博客园 Copyright © 2024 solvit Powered by .NET 8.0 on Kubernetes