筛法求莫比乌斯函数板子

莫比乌斯函数:1(n=1) 0 (n有相同的质因子) (-1)^s (s为n中不同质因子个数)

vector<int>prime;
int vis[maxn],mu[maxn];
void getmu(int n){
	mu[1]=1;
	for(int i=2;i<=n;i++){
		if(!vis[i]){
			prime.pb(i);
			mu[i]=-1;
		}
		for(int j=0;j<prime.size()&&i*prime[j]<=n;j++){
			vis[i*prime[j]]=1;
			if(i%prime[j]==0){
				mu[i*prime[j]]=0;break;//i*prime[j]有相同质因子 
			}
			else{
				mu[i*prime[j]]=-mu[i];//不同质因子数+1 
			}
		}
	}
}
posted @ 2025-03-29 10:47  Marinaco  阅读(23)  评论(0)    收藏  举报
//雪花飘落效果