欧拉函数
参考资料
定义
欧拉函数(Euler's totient function) 表示不超过 且与 互质的正整数个数。; 为质数时 。
它是积性函数。设 的质因数分解为 ,则
实现
按上式枚举 的质因子并累乘,时间复杂度为 。
ll phi(ll n)
{
ll res=n;
for(ll i=2;i*i<=n;i++)
{
if(n%i==0)
{
res=res/i*(i-1);
while(n%i==0)n/=i;
}
}
if(n>1)res=res/n*(n-1);
return res;
}
欧拉定理
与欧拉函数紧密相关的一个定理就是欧拉定理。其描述如下:
若 ,则 。
扩展欧拉定理
当然也有扩展欧拉定理,用于处理一般的 和 的情形。