欧拉函数基础

欧拉函数基础

定义

​ φ(n)\varphi(n) 即考虑 [ 1 , n−1 ][~1~,~n-1~] 中与 xx 互质的个数。

几个简单的引理

​ 当 nn 为质数时,那么由质数的定义可知 [ 1 , n−1 ][~1~,~n-1~] 中的整数均与 nn 互质,即 φ(n)=n−1\varphi(n)=n-1。

​ 当 n=pkn=p^k 且 pp 为质数时,那么与 nn 互质的数即为不含 pp 素因子的数,容斥一下,易知:

φ(n)=n−np=pk−1(p−1)=pk−1φ(p)\varphi(n)=n-\frac{n}{p}=p^{k-1}(p-1)=p^{k-1}\varphi(p)

欧拉函数积性证明

一直在找有关严谨的证明,但是初等数论的剩余系内容晦涩难懂

​ 对于任意互质的正整数 n,mn,m 都有 φ(nm)=φ(n)φ(m)\varphi(nm)=\varphi(n)\varphi(m)。

​ 我们考虑到满足 k∈[ 0 , m−1 ]k \in [~0~,~m-1~] 的闭区间 [ kn+1 , (k+1)n ][~kn+1~,~(k+1)n~] 都是一个模 nn 意义下的完全剩余系;且对于满足 k∈[ 0 , n−1 ]k \in [~0~,~n-1~] 的闭区间 [ km+1 , (k+1)m ][~km+1~,~(k+1)m~] 都是一个模 mm 意义下的完全剩余系。(剩余系即对于任意两个同属于其中的元素在模意义下都不同余,且每种余数都恰好出现一次)

​ 那么每一个模 nn 意义下的完全剩余系中都存在 φ(n)\varphi(n) 个数满足 gcd⁡(x,n)=1\gcd(x,n)=1,且每一个模 mm 意义下的完全剩余系中都存在 φ(m)\varphi(m) 个数满足 gcd⁡(x,m)=1\gcd(x,m)=1。

​ 由于 gcd⁡(n,m)=1\gcd(n,m)=1,考虑到满足 gcd⁡(x,nm)=1\gcd(x,nm)=1 的数需要同时满足 gcd⁡(x,n)=1\gcd(x,n)=1 且 gcd⁡(x,m)=1\gcd(x,m)=1,那么显而易见的,φ(nm)=φ(n)φ(m)\varphi(nm)=\varphi(n)\varphi(m)。

这个证明貌似并不严谨

​ 然而我们手玩几组数据后发现 φ(x)\varphi(x) 并不是一个完全积性函数,必须要满足 gcd⁡(n,m)=1\gcd(n,m)=1。

​ 因为对于模 nn 意义下的完全剩余系和模 mm 意义下的完全剩余系中,我们选取出了两个数 a,ba,b 作为 xx 分别对 n,mn,m 取模后的余数。如果不满足 gcd⁡(n,m)=1\gcd(n,m)=1,那么仅拥有 a,ba,b 两个数无法确定 xx 本身的值。那么也就是说,在 gcd⁡(n,m)=1\gcd(n,m)=1 时,a,ba,b 与 xx 分别一一对应;而 gcd⁡(n,m)≠1\gcd(n,m)\ne 1 时,可能有多个 xx 对应同一个 a,ba,b,但是因为 n×m=nmn\times m=nm,意味着可能不存在 xx 与 a,ba,b 对应。例如 n=4,m=6n=4,m=6 时,5,175,17 对 44 取模余 11,对 66 取模余 55;同时,没有任何一个整数满足对 44 取模余 00,对 66 取模余 11。这个和裴蜀定理有相通之处。

欧拉函数的构造

​ 考虑到对于每个数进行质因数分解,根据算术基本定理,则有:

x=∏i=1kpiαiφ(x)=∏i=1kφ(piαi)x=\prod_{i=1}^{k} p_i^{\alpha_i} \\ \varphi(x)=\prod_{i=1}^{k}\varphi(p_i^{\alpha_i})

​ 此时根据 φ(pk)\varphi(p^k) 的引理易知:

φ(x)=∏i=1kpiαi−1φ(pi)\varphi(x)=\prod_{i=1}^{k}{p_i}^{\alpha_i-1} \varphi(p_i)

​ 且根据算术基本定理易知:

φ(x)=x∏i=1kpi−1pi=x∏i=1k(1−1pi)\varphi(x)=x\prod_{i=1}^{k}\frac{p_i-1}{p_i}=x\prod_{i=1}^{k}(1-\frac{1}{p_i})

​ 放一份代码,线性求欧拉函数其实大体参照欧拉筛:

(原理是对于每一个合数只被其最小质因数判掉,减少多余的判断次数)

for(int i=2;i<=n;i++)
{
	if(!vis[i])
	{
		pri[++cnt]=i;
		phi[i]=i-1;
	}
	for(int j=1;j<=cnt;j++)
	{
		if((lint)i*pri[j]>n) break;
		vis[i*pri[j]]=true;
		if(!(i%pri[j]))
		{
			phi[i*pri[j]]=phi[i]*pri[j];
			break;
		}
		else phi[i*pri[j]]=phi[i]*(pri[j]-1);
	}
}

一些好玩的定理

∑d∣nφ(d)=n\sum_{d|n}\varphi(d)=n

​ 由算术基本定理易知:

n=∏i=1kpiαi∑d∣nφ(d)=∏i=1k∑j=0αiφ(pij)∏i=1k∑j=0αiφ(pij)=∏i=1k∑j=0αipij−pij−1=∏i=1kpiαi=nn=\prod_{i=1}^{k} {p_i}^{\alpha_i} \\ \sum_{d|n}\varphi(d)=\prod_{i=1}^{k}\sum_{j=0}^{\alpha_i}\varphi({p_i}^{j}) \\ \prod_{i=1}^{k}\sum_{j=0}^{\alpha_i}\varphi({p_i}^{j})=\prod_{i=1}^{k} \sum_{j=0}^{\alpha_i}{p_i}^{j}-{p_i}^{j-1}=\prod_{i=1}^{k}{p_i}^{\alpha_i}=n

这好像就是著名的欧拉反演公式?

欧拉定理

​ 著名的欧拉定理,同时也是费马小定理更深刻的理解:

​ 考虑对于任意的整数 nn 都有与其互质的整数 aa 满足:

aφ(n)≡1(modn)a^{\varphi(n)}\equiv1\pmod{n}

​ 考虑对 nn 的既约剩余系累积,令 rir_i 表示其一种既约剩余系。

∏i=1φ(n)ri\prod_{i=1}^{\varphi(n)}r_i

​ 且知同余的性质满足:

ab≡ac(modm)ab \equiv ac \pmod{m}

​ 等价于:

b≡c(modmgcd⁡(m,a))b \equiv c \pmod{\frac{m}{\gcd(m,a)} }

​ 且因为 gcd⁡(a,n)=1\gcd(a,n)=1,那么易知:

∏i=1φ(n)ri≡∏i=1φ(n)ari≡aφ(n)∏i=1φ(n)ri(modn)\prod_{i=1}^{\varphi(n)}r_i \equiv \prod_{i=1}^{\varphi(n)} a r_i \equiv a^{\varphi(n)} \prod_{i=1}^{\varphi(n)} r_i \pmod{n}

​ 且因为 rir_i 为 nn 的既约剩余系,即 gcd⁡(ri,n)=1\gcd(r_i,n)=1,那么就有:

aφ(n)≡1(modn)a^{\varphi(n)} \equiv 1 \pmod{n}

​ 而当 nn 为质数 pp 时,φ(p)=p−1\varphi(p)=p-1:

ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}

​ 这就是费马小定理。

为扩展欧拉定理留个坑位吧