莫比乌斯筛板子

整理莫比乌斯反演筛

void pre_calc(int lim){
	mu[1]=-1;
	for (int i=2;i<=lim;i++)
     {
         if (!prime_tag[i]) prime_tag[++prime_tot]=i,mu[i]=-1;
         
         for (int j=1;j<=prime_tot;j++)
            {
			   if (prime[j]*i>lim) break;
			   prime_tag[prime[j]*i]=1;
			   if (i%prime[j]==0) {
			   mu[i*prime[j]]=0;
			   break;
		        }
			   else mu[i*prime[j]]=-mu[i];
			}      
	 }
}

猜你喜欢

转载自blog.csdn.net/qq_36172410/article/details/89096274