容斥原理

用来求关于与n不互质的
模板

先把n拆开

vector<int>v
v.clear();
for(int i=2;i*i<=n;i++)
	{
		if(n%i==0)
		{
			v.pb(i);
			while(n%i==0)
			{
				n/=i;
			 } 
		}
	}
	if(n>1) v.push_back(n);

容斥模板

int sum;
for(int i=1;i<(1<<v.size()) ;i++)
	{
		ll bits=0,ans=1;
		for(int j=0;j<v.size() ;j++)
		{
			if((1<<j)&i)
			{
				bits++;
				ans*=v[j];
			}
		}
		if(bits&1)
		sum+=solve(ans);//solve是按题目要求写的
		else
		{
			sum-=solve(ans);
		}
	}
原文地址:https://www.cnblogs.com/wzl19981116/p/9355611.html