欧拉函数与欧拉定理

互质

\(\forall a,b \in \mathbb{N}\),若\(\operatorname{gcd}(a,b) = 1\) ,则称\(a\)\(b\)互质

欧拉函数

\(1 \sim N\)中与\(N\)互质的数的个数被称作欧拉函数,记为\(\varphi(N)\)

若在算数基本定理中,\(N = \prod_{i=1}^{m} {p_i^{c_i}}\),则:

\[\varphi(N) = N \times \prod_{i=1}^{m} {\frac{p_i -1}{p_i}} = N \times \prod_{i=1}^{m} {(1-\frac{1}{p})} \]

\(p,q\)\(N\)是质因子,则\(1 \sim N\)\(p,q\)的倍数分别为\(\frac{N}{p},\frac{N}{q}\)个,根据容斥原理,\(N\)中同时是\(p,q\)倍数的个数为:

\[N-\frac{N}{p}-\frac{N}{q}+\frac{N}{pq}=N(1-\frac{1}{p})(1-\frac{1}{q}) \]

以此类推,得到欧拉函数的计算公式。

单个数字的欧拉函数值的计算代码:

int phi(int x){
	int res=x;
	for(int i=2;i<=sqrt(x);i++){
		if(x%i==0){
			res=res/i*(i-1);
			while(x%i==0)x/=i;
		}
	}
	if(x>1){
		res=res/x*(x-1);
	}
	return res;
}

积性函数

如果当\(a,b\)互质时,\(f(ab)=f(a)f(b)\),那么称\(f\)为积性函数

欧拉函数性质

  1. \(\forall n >1,1 \sim n\)中与\(n\)互质的数的和为\(\frac{n * \varphi(n)}{2}\)

    因为\(\operatorname{gcd}(n,x) = \operatorname{gcd}(n,n-x)\),所以与\(n\)不互质的数\(x,n-x\)成对出现,平均值为\(n/2\),因此得到与\(n\)互质的数的平均值为\(n/2\),进而得到性质1。

  2. \(a,b\)互质,有\(\varphi(ab) = \varphi(a)\varphi(b)\)

    因为\(a,b\)互质,所以\(a,b\)没有相同的质因数,对\(a,b\)分解质因数,把\(\varphi(a),\varphi(b)\)展开相乘即可得到\(\varphi(ab)\)

  3. \(f\)为积性函数,且\(n=\prod_{i=1}^{m} {p_i^{c_i}}\),那么\(f(n)= \prod_{i=1}^{m} {f(p_i^{c_i})}\)

    根据积性函数的定义,显然有性质3。

  4. \(p\)是质数,若\(p \mid n\)\(p^2 \mid n\),则\(\varphi(n)=\varphi(n/p)\times p\)

    \(p \mid n , p^2 \mid n\),可得\(n,n/p\)有相同的质因子且只有\(p\)的质数不同,把二者展开之后发现\(\frac{\varphi(n)}{\varphi(n/p)} = p\),所以性质4成立。

  5. \(p\)是质数,若\(p \mid n\)\(p^2 \nmid n\),则\(\varphi(n)=\varphi(n/p)\times (p-1)\)

    \(p \mid n\)\(p^2 \nmid n\),得\(p\)\(n/p\)互质,由性质2得\(\varphi(n) = \varphi(n/p) \times \varphi(p)\),又由\(p\)是质数得\(\varphi(p)=p-1\),所以性质5成立。

  6. \(\sum_{d \mid n} {\varphi(d)} =n\)

    \(f(x)= \sum_{d \mid x} {\varphi(d)}\),若\(x,y\)互质,那么对于\(xy\)的每个约数\(z\),都有唯一的\(a,b\),使得\(a \mid x, b \mid y ,ab=z\),所以,\(f(x)f(y)=(\sum_{d \mid x} {\varphi(d)}) \times(\sum_{d \mid y} {\varphi(d)})=\sum_{d \mid xy} {\varphi(d)}=f(xy)\),所以\(f(x)\)是一个积性函数。由性质3得,\(f(n)=\prod_{i=1}^{m} {f(p_i^{c_i})}=\prod_{i=1}^{m} {\sum_{j=0}^{c_i}{\varphi(p_i^{j})}}\),因为\(\sum_{j=1}^{c_i}{\varphi(p_i^{j})}\)是一个等比数列求和再加\(1\),所以\(\sum_{j=1}^{c_i}{\varphi(p_i^{j})} = 1+\frac{(p-1)p^{c_i}-(p-1)}{p-1} = p_{c_i}\),带入\(f(n)\),得\(f(n)=\prod_{i=1}^{m} {f(p_i^{c_i})}=\prod_{i=1}^{m} {p_i^{c_i}}=n\),所以性质6成立。

线性筛求欧拉函数

由性质4和性质5得

  • \(p \mid n\)\(p^2 \mid n\),则\(\varphi(n)=\varphi(n/p)\times p\)

  • \(p \mid n\)\(p^2 \nmid n\),则\(\varphi(n)=\varphi(n/p)\times (p-1)\)

在线性筛中,每个合数数会被其最小的质因子所标记,所以我们可以利用这一性质进行递推,从\(\varphi(n/p)\)推到\(\varphi(n)\)

void euler(){
	phi[1]=1;
	for(int i=2;i<=maxn;i++){
		if(!fl[i]){
			cnt++,pr[cnt]=i;
			v[i]=i,phi[i]=i-1;
		}
		for(int j=1;j<=cnt&&pr[j]<=maxn/i;j++){
			if(pr[j]>v[i])break;
			fl[pr[j]*i]=true;
			v[pr[j]*i]=pr[j];
			phi[pr[j]*i]=phi[i]*(i%pr[j]==0?pr[j]:pr[j]-1);
		}
	}
	return;
}

费马小定理

\(p\)是质数,那么有:

\[a^{p-1} \equiv a \ (mod \ p) \]

欧拉定理

\(a,m\)互质,那么有:

\[a^{\varphi(m)} \equiv 1 \ (mod \ m) \]

扩展欧拉定理

\( a^b = \left\{ \begin{aligned} & a^b \ \ b<m\\ & a^{b\ mod \ \varphi(m)} \ \ gcd(a,m)=1\\ & a^{b\ mod \ \varphi(m)+\varphi(m)} \ gcd(a,m) \ne 1 \end{aligned} \ (mod \ m) \right. \)

posted @ 2024-06-29 17:04  RYANGSJ  阅读(2)  评论(0编辑  收藏  举报