欧拉函数
挺多,定理挺简单,证明复杂。
欧拉函数( \(\varphi\) )
定义:
\(\varphi(x)\) 表示所有 \(\le x\) 的数中,与 \(x\) 互质的数的个数。
通式:
设 \(p_1,p_2,...,p_n\) 表示 \(x\) 的质因数。
则:
证明:
首先,显然,一个数和 \(x\) 互质的充要条件是其不是 \(x\) 质因数的倍数。
所以我们考虑筛掉所有 \(x\) 的质因数的倍数。
随便找两个 \(x\) 的质因数 \(p_i,p_j\) ,考虑容斥,他们的倍数个数为:
所以剩下的个数为:
同理筛去所有的即可得到通式。
也可以通过性质证明(具体性质见下:
设(将 \(x\) 分解质因数):
其中:
易知:
附:
求 \(x\) 内与 \(y\) 互质的数(要求 \(y \mid x\):
其中 \(p\) 是 \(y\) 的质因数集(推导类似欧拉定理通式推导)。
也可以写作:
————做题时得到的类似通式扩展。
性质:
-
若 \(x\) 为质数,则 \(\varphi(x)=x-1\)
-
若 \(x\) 为质数,则 \(\varphi(x^k)=x^k-x^{k-1}\)
1,2 结合定义显然
-
\(\varphi\) 是积性函数
对于任意互质的 \(x,y\) , \(\varphi(xy)=\varphi(x)\times\varphi(y)\)
-
当 \(x\) 是奇数时 \(\varphi(2x)=\varphi(2)\times\varphi(x)=\varphi(x)\)
-
\(x (x>1)\) 以内所有与其互质的数的和 \(=\varphi(x)\times x \div 2\)
证明:
前置定理更相减损术,简单来说,就是 \(\gcd(x,y)=\gcd(x,x-y)=\gcd(x-y,y)\)
由这个公式可以知道,所有与 \(x\) 互质的数都是成对出现的,并且他们的和为 \(x\)( \(y,x-y\) )。
因为共有 \(\varphi(x) \div 2\) 组,所以他们的和为 \(\varphi(x)\times x \div 2\)
同时由这个证明可得, \(\varphi(x)(x>2)\) 是偶数。
-
\(x=\sum\limits_{a\mid x}\varphi(a)\)
证明,设 \(f(a)=\sum\limits_{i\mid a}\varphi(i)\)
\[\because f(n)\times f(m)=\sum\limits_{i\mid n}\varphi(i) \sum\limits_{j\mid m}\varphi(j)=\sum\limits_{i\mid n}\sum\limits_{j\mid m}\varphi(ij)=\sum\limits_{k\mid nm}\varphi(k)=f(nm)\text{ }(\gcd(n,m)=1) \]\[\therefore f \text{ 是积性函数} \]\[\therefore f(p^k)=\varphi(1)+\varphi(p)+\varphi(p^2)+...+\varphi(p^k)=p^k\text{ (p 为质数)} \]\[\because x=p_1^{k_1}p_2^{k_2}...p_n^{k_n} \]\[\therefore f(x)=f(p_1^{k_1})f(p_2^{k_2})...f(p_n^{k_n})=p_1^{k_1}p_2^{k_2}...p_n^{k_n}=x \]
线性筛求欧拉函数:
因为欧拉函数是积性函数,所以可以线性筛。
// npri 表示是否是质数(为1不是),pri存储质数,phi存储欧拉函数,x指通式中的x
inline void phi_sieve(int n){
npri[1]=1;phi[1]=1;
for(int i=2;i<=n;i++){
if(!npri[i]) phi[i]=i-1,pri[++ppri]=i;
for(int j=1;j<=ppri&&i*pri[j]<=n;j++){
npri[i*pri[j]]=1;
if(i%pri[j]==0){phi[i*pri[j]]=phi[i]*pri[j];break;}//phi[i]已经有质因数pri[j],只需要x扩大pri[j]即可。
phi[i*pri[j]]=phi[i]*phi[pri[j]];//phi 为积性函数,phi[i*pri[j]] = phi[i] * phi[pri[j]]
}
}
}
欧拉反演:
其实就是应用欧拉函数的性质 \(6\)
两个基础应用:
- \(\sum\limits_{i=1}^n \gcd(i,n)\)
- \(\sum\limits_{i=1}^n\sum\limits_{j=1}^n\gcd(i,j)\)
欧拉定理:
若 \(a,m\) 互质,则满足:
证明这篇博客讲的极其详细,不赘述。
扩展欧拉定理:
对于任意 \(a,m\)
证明极其复杂,这里不给出了,可以参考这篇博客
参考博客:
https://www.cnblogs.com/Morning-Glory/p/11106828.html
本文来自博客园,作者:xrlong,转载请注明原文链接:https://www.cnblogs.com/xrlong/articles/17074298.html