数论基础——欧拉函数
定义
对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。
通式
φ(n)=n×(1−1/p1)×(1−1/p2)×(1−1/p3)×...×(1−1/pn)
即:
φ(n)=n×∏i=1npipi−1
p1、p2、p3...pn是n(n>0)的质因数.
注意:
φ(1)=1.
代码
ll eular(ll n)
{
ll ans = n;
for(int i=2; i*i <= n; i++)
{
if(n%i == 0)
{
ans = ans/i*(i-1);
while(n%i == 0)
n/=i;
}
}
if(n > 1) ans = ans/n*(n-1);
return ans;
}
性质
1.若p为质数,
φ(p)=p−1
2.若m,n互质,则
φ(m×n)=φ(m)×φ(n)
3.若
n=pk(p是质数),则
φ(n)=(p−1)×pk−1
4.欧拉定理:对于互质的m、n,有
nφ(m)≡1(modm)
5.费马小定理:对于质数p
若n mod p = 0 ,则
φ(n×p)=φ(n)×p
若n mod p ≠ 0 ,则
φ(n×p)=φ(n)×(p−1)
6.小于n且与n互质的数的和:
S=n×2φ(n)
7.
n=∑d∣nφ(d)
注: (d|n)指n是d的倍数