欧拉函数和欧拉定理

1. 欧拉函数的定义以及性质

定义一个数 \(m\) 的欧拉函数 \(\varphi(m)\)\([1,m]\) 中与 \(m\) 互质的整数个数。

首先,明显地,

  1. 如果 \(m\) 是质数,那么 \(\varphi(m)=m-1\)
  2. 如果 \(m\) 是质数,那么 \(\varphi(m^k)=(m-1)\times m^{k-1}\)。这是因为由于 \(m^k\) 只含有质因数 \(m\),所以 \([1,m^k]\) 里所有不与 \(m^k\) 互质的数只有所有 \(m\) 的倍数,一共 \(m^{k-1}\) 个数,所以 \([1,m^k]\) 中与 \(m^k\) 互质的数有 \((m-1)\times m^{k-1}\) 个。

定理 1 欧拉函数 \(\varphi\) 是一个积性函数。也就是如果 \(\gcd(a,b)=1\),那么 \(\varphi(a\times b)=\varphi(a)\times\varphi(b)\)

接下来我们要证明这件事。首先,我们知道,要与 \(a\times b\) 互质,就要同时与 \(a\)\(b\) 互质。

引理 1 我们列出 \([1,a]\) 的所有与 \(a\) 互质的数:\(c_1,c_2,…,c_{\varphi(a)}\)。那我们知道在 \([1,a\times b]\) 里有且仅有 \(c_1,c_2,…,c_{\varphi(a)},c_1+a,c_2+a,…,c_{\varphi(a)}+a,c_1+2a,…,c_i+ja,…c_{\varphi(a)}+(b-1)a\)\(b\times\varphi(a)\) 个数与 \(a\) 互质。

证明

定理 1 的推论:如果 \(m\) 不含质因数 \(p\),那么 \(\gcd(m,p^k)=1\),所以 \(\varphi(m\times p^k)=\varphi(m)\times\varphi(p^k)=\varphi(m)\times(p-1)\times p^{k-1}=\varphi(m)\times p^k\times\frac{p-1}{p}\)

进一步可以得到:假设 \(m=p_1^{\alpha_1}p_2^{\alpha_2}…p_r^{\alpha_r}\),那么 \(\varphi(m)=p_1^{\alpha_1-1}p_2^{\alpha_2-1}…p_r^{\alpha_r-1}\)

定理 2 对任意正整数 \(m\)\(\sum\limits_{d\mid m}\varphi(d)=m\)
证明:当 \(m=1\) 时结论显然成立。当 \(m>1\) 时,假设 \(m=p_1^{\alpha_1}p_2^{\alpha_2}…p_r^{\alpha_r}\),那么

\[\begin{align}\sum\limits_{d\mid m}\varphi(d)&=\sum\limits_{e_1=0}\limits^{\alpha_1}…\sum\limits_{e_r=0}\limits^{\alpha_r}\varphi(p_1^{e_1}…p_r^{e^r})\\&=\prod\limits_{i=1}\limits^{r}\Big(\sum\limits_{e_i=0}\limits^{\alpha_i}\varphi(p_i^{e_i})\Big)\\&=\prod\limits_{i=1}\limits^{r}\Big(1+\sum\limits_{j=1}\limits^{\alpha_i}\varphi(p_i^j)\Big)\\&=\prod\limits_{i=1}\limits^{r}\Big(1+\sum\limits_{j=1}\limits^{\alpha_i}(p_i^j-p_i^{j-1})\Big)\\&=\prod\limits_{i=1}\limits^{r}p_i^{\alpha_i}\\&=m\end{align} \]

证毕

2. 欧拉函数求值方法

  1. 单独求值:我们可以得到任意正整数欧拉函数求值的方法:将 \(m\) 质因数分解,假设 \(m=p_1^{\alpha_1}\times p_2^{\alpha_2}\times …\times p_r^{\alpha_r}\),其中 \(p_i\) 是质数。那么它的欧拉函数 \(\varphi(m)\) 的值就是 \(m\times\prod\limits_{i=1}\limits^r\frac{p_i-1}{p_i}\)。时间复杂度 \(O(\sqrt m)\)

  2. 如果我们要求 \(\varphi(1),\varphi(2),…,\varphi(m)\) 呢?我们可以利用欧拉函数是积性函数的性质,使用欧拉筛求解。时间复杂度 \(O(m)\)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll _=1000010;
ll c=0,p[_],e[_];
bitset<_>v;
int main(){
	v.set();
	for(ll i=2;i<_;i++){
		if(v[i])p[++c]=i,e[i]=i-1;//i是质数,那么phi(i)=i-1
		for(ll j=1;j<=c&&i*p[j]<_;j++){//正经筛法
			v[i*p[j]]=0;
			if(i%p[j])e[i*p[j]]=e[i]*(p[j]-1);//如果i*p[j]只有一个p[j],那要乘(p[j]-1)
			else{e[i*p[j]]=e[i]*p[j];break;}//如果i*p[j]有多于一个p[j],那对于多出来的每个p[j],要乘p[j]
		}
	}
	cout<<e[1000]<<'\n';//输出你需要的数
	return 0;
} 

4. 欧拉定理

定理 3(欧拉定理、费马小定理) \(\gcd(a,m)=1\Rightarrow a^{\varphi(m)}\equiv 1\pmod m\)。特别地,当 \(m\) 是素数 \(p\) 时,\(a^{p-1}\equiv 1\pmod p\)

证明:假设 \(\{r_1,r_2,…,r_{\varphi(n)}\}\) 是一个 \(\bmod m\) 的既约剩余系,那么使用类似引理 2 的证法,\(\{ar_1,ar_2,…,ar_{\varphi(n)}\}\) 也是一个 \(\bmod n\) 的既约剩余系。所以 \(r_1\times r_2\times …\times r_{\varphi(n)}\equiv ar_1\times ar_2\times …\times ar_{\varphi(n)}\pmod n\)。因为 \(\gcd(r_1\times r_2\times …\times r_{\varphi(n)},n)=1\),所以 \(a^{\varphi(n)}\equiv 1\pmod n\)
证毕

定理 4(扩展欧拉定理)

\[a^b\equiv\begin{cases}a^{\varphi(m)}\pmod m,&\gcd(a,m)=1\\a^b\pmod m,&\gcd(a,m)\ne 1,b\le \varphi(m)\\a^{(b\bmod \varphi(m))+\varphi(m)}\pmod m,&\gcd(a,m)\ne 1,b>\varphi(m)\end{cases} \]

证明:

主要证最后一式。我们假设 \(\gcd(a,m)\ne 1\),那么对于 \(a^0\)\(a^\infty\) 次方,由于鸽巢原理,\(\forall x\in N,a^x\) 在模 \(m\) 的其中一个同余类中至少出现了 \(\infty\) 次。那么,由于每次乘 \(a\)\(m\) 后的值是固定的,所以每两次出现之间所发生的事都是一样的。
所以我们可以假设,在 \(a^0\)\(a^\infty\) 的序列中,存在 \(r\)\(s\),使得前 \(r\) 个数 \(a^0\bmod m…,a^{r-1}\bmod m\) 互不相同,并且从 \(r\) 开始,每 \(s\) 个数就循环一次。同时,容易知道 \(\forall i\ge r,a^i\equiv a^{i+s}\pmod m\)

情况 1 \(a\) 为素数的情况,该式成立。

由于 \(\gcd(a,m)\ne 1\),所以 \(a\mid m\)。那么,存在 \(w\)\(m'\) 使得 \(m=a^w\times m'\),并且 \(\gcd(a^w,m')=1\)。所以,我们知道 \(a^{\varphi(m')}\equiv 1\pmod {m'}\),并且 \(\varphi(m')\mid\varphi(m)\)
那么 \(a^{\varphi(m)}\equiv 1\pmod{m'}\),即 \(a^{\varphi(m)}=km'+1\),两边同乘 \(a^w\),那么 \(a^{w+\varphi(m)}=km+a^w\),所以 \(a^{w+\varphi(m)}\equiv a^w\pmod m\)
所以我们可以推知 \(b>w\) 时有 \(a^b\equiv a^{({(b-w)}\bmod\varphi(m))+w}\pmod m\)
又因为 \(\varphi(m)>w\),所以有 \(a^w\equiv a^{w+\varphi(m)}\equiv a^{(w\bmod \varphi(m))+\varphi(m)}\pmod m\),那么

\[\begin{align}a^b &\equiv a^{({(b-w)}\bmod\varphi(m))+w}\pmod m\\&\equiv a^{({(b-w)}\bmod\varphi(m))+(w\bmod \varphi(m))+\varphi(m)}\pmod m\\&\equiv a^{(b\bmod\varphi(m))+\varphi(m)}\pmod m\end{align} \]

证毕

情况 2 \(a\) 是素数的幂的情况,该式成立。

暂定

情况 3 \(a\) 是合数的情况,该式成立。

暂定

posted @ 2023-05-15 09:15  lrxQwQ  阅读(79)  评论(0编辑  收藏  举报