欧拉函数基础

欧拉函数基础

定义

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

几个简单的引理

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

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

φ(n)=nnp=pk1(p1)=pk1φ(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 , m1 ]k \in [~0~,~m-1~] 的闭区间 [ kn+1 , (k+1)n ][~kn+1~,~(k+1)n~] 都是一个模 nn 意义下的完全剩余系;且对于满足 k[ 0 , n1 ]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)=1gcd(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,bxx 分别一一对应;而 gcd(n,m)1\gcd(n,m)\ne 1 时,可能有多个 xx 对应同一个 a,ba,b,但是因为 n×m=nmn\times m=nm,意味着可能不存在 xxa,ba,b 对应。例如 n=4,m=6n=4,m=6 时,5,175,1744 取模余 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αi1φ(pi)\varphi(x)=\prod_{i=1}^{k}{p_i}^{\alpha_i-1} \varphi(p_i)

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

φ(x)=xi=1kpi1pi=xi=1k(11pi)\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);
	}
}

一些好玩的定理

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

​ 由算术基本定理易知:

n=i=1kpiαidnφ(d)=i=1kj=0αiφ(pij)i=1kj=0αiφ(pij)=i=1kj=0αipijpij1=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

​ 且知同余的性质满足:

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

​ 等价于:

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

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

i=1φ(n)rii=1φ(n)ariaφ(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_inn 的既约剩余系,即 gcd(ri,n)=1\gcd(r_i,n)=1,那么就有:

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

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

ap11(modp)a^{p-1} \equiv 1 \pmod{p}

​ 这就是费马小定理。

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