欧拉函数:
=n(p1−1p1)(p2−1p2)⋅⋅⋅(p3−1p3)
定义:整数从1到n中有多少个数与n互质
m=n;k=n;
r=sqrt(n);
for (int i=1;i*i<=r;i++){//k即为φ(n)
if (!(m%i)) k=k/i*(i-1);
while (!(m%i)) m=m/i;
}
if (m!=1) k=k/m*(m-1);//m可能没有约完,但m定为质数
容斥原理:先允许再排斥
如找从1到100中是2、3、5的倍数的数的个数
ans=(1002)+(1003)+(1005)−(1006)−(10010)−(10015)+(10030)
先找是2、3、5的倍数的数,发现多加了是6,10,15的倍数的个数,然后再减去是6,10,15的倍数的个数发现减多了,再加上是30的倍数的个数
本文介绍了欧拉函数的计算方法及其应用,并通过实例详细解释了如何利用容斥原理解决数学问题。通过具体示例展示了如何求解特定范围内与某个数互质的数的数量。
1265

被折叠的 条评论
为什么被折叠?



