一只蒟蒻的数论学习笔记(欧拉函数专题篇)

更多请见DUMBLOG

一只蒟蒻的数论学习笔记(欧拉函数专题篇)

定义

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

函数式

φ ( n ) = n × ∏ i = 1 m ( 1 − 1 p i ) \varphi \left ( n \right ) = n \times \prod_{i=1}^{m} \left ( 1-\frac{1}{p_{i}} \right ) φ(n)=n×i=1m(1pi1)

性质

性质一

显然,如果 N N N 为 质数,则 φ ( N ) = N − 1 \varphi(N)=N-1 φ(N)=N1

性质二

欧拉函数为 积性函数: 若 gcd ⁡ ( a , b ) = 1 \gcd(a , b ) = 1 gcd(a,b)=1,则 φ ( a b ) = φ ( a ) φ ( b ) \varphi(ab)=\varphi(a)\varphi(b) φ(ab)=φ(a)φ(b)

积性函数 指对于所有互质的整数 a a a b b b 有性质 f ( a b ) = f ( a ) f ( b ) f( ab ) = f( a ) f( b ) f(ab)=f(a)f(b) 的数论函数。

性质三

n = p k n=p^{k} n=pk p p p 为 质数,则 φ ( n ) = n ( 1 − 1 p ) = ( p − 1 ) p k − 1 \varphi(n)= n\left (1 - \frac{1}{p} \right )= \left ( p - 1 \right )p^{k-1} φ(n)=n(1p1)=(p1)pk1

证明
n n n 个数中只有 p p p 的倍数不与 n n n 互质,而 p p p 的倍数 x x x 则有 n p = p k − 1 \dfrac{n}{p}=p^{k-1} pn=pk1 个,
因此 φ ( n ) = n − n p = n ( 1 − 1 p ) = p k − p k − 1 = ( p − 1 ) p k − 1 \varphi(n)=n-\dfrac{n}{p}=n(1-\dfrac{1}{p})=p^{k}-p^{k-1}=(p-1)p^{k-1} φ(n)=npn=n(1p1)=pkpk1=(p1)pk1

性质四

N = p 1 c 1 p 2 c 2 . . . p m c m N=p_{1}^{c_{1}}p_{2}^{c_{2}}...p_{m}^{c_{m}} N=p1c1p2c2...pmcm,则:
φ ( N ) = N × p 1 − 1 p 1 × p 2 − 1 p 2 × . . . × p m − 1 p m \varphi(N)=N \times \dfrac{p_{1}-1}{p_{1}} \times \dfrac{p_{2}-1}{p_{2}} \times ... \times \dfrac{p_{m}-1}{p_{m}} φ(N)=N×p1p11×p2p21×...×pmpm1
φ ( N ) = N × ( 1 − 1 p 1 ) × ( 1 − 1 p 2 ) × . . . × ( 1 − 1 p m ) \varphi(N)=N \times \left ( 1-\dfrac{1}{p_{1}} \right ) \times \left ( 1-\dfrac{1}{p_{2}} \right ) \times ... \times \left ( 1-\dfrac{1}{p_{m}} \right ) φ(N)=N×(1p11)×(1p21)×...×(1pm1)

即:
φ ( n ) = n × ∏ i = 1 m ( 1 − 1 p i ) {\small \varphi \left ( n \right ) = n \times \prod_{i=1}^{m} \left ( 1-\frac{1}{p_{i}} \right )} φ(n)=n×i=1m(1pi1)

性质五

∀ n > 1 \forall n > 1 n>1,1 到 n n n 中与 n n n 互质的数的和为 n × φ ( n ) 2 n \times \dfrac{\varphi(n)}{2} n×2φ(n)

证明
因为 gcd ⁡ ( n , x ) = gcd ⁡ ( n , n − x ) \gcd( n , x ) = \gcd( n , n-x ) gcd(n,x)=gcd(n,nx),所以与 n n n 不互质的数 x x x n − x n - x nx 成对出现,平均值为 n 2 \dfrac{n}{2} 2n
因此,与 n n n 互质的数的平均数也是 n 2 \dfrac{n}{2} 2n,进而可得 1 到 n n n 中所有与 n n n 互质的数的和为 n 2 φ ( n ) \dfrac{n}{2} \varphi(n) 2nφ(n),化简得 n × φ ( n ) 2 \dfrac{n\times \varphi(n)}{2} 2n×φ(n)

性质六

如果 a m o d    p = 0 a \mod p = 0 amodp=0,其中 p p p 为质数,则 φ ( a × p ) = p × φ ( a ) \varphi(a \times p)=p \times \varphi(a) φ(a×p)=p×φ(a)

证明
因为 a m o d    p = 0 a \mod p = 0 amodp=0,所以 a × p a \times p a×p a a a 包含相同的质因子,只是其中有一个质因子 p p p 的指数不同。
直接把 φ ( a × p ) \varphi(a \times p) φ(a×p) φ ( a ) \varphi(a) φ(a) 按照函数式写出来,前者除去后者,商为 p p p ,即 φ ( a × p ) φ ( a ) = p \dfrac{\varphi(a \times p)}{\varphi(a)}=p φ(a)φ(a×p)=p
所以 φ ( a × p ) = p × φ ( a ) \varphi(a \times p)=p \times \varphi(a) φ(a×p)=p×φ(a)

性质七

如果 a m o d    p ≠ 0 a \mod p \ne 0 amodp=0, 其中 p p p 为质数,则 φ ( a p ) = ( p − 1 ) φ ( a ) \varphi(ap)=(p-1)\varphi(a) φ(ap)=(p1)φ(a)

证明
欧拉函数为积性函数。
所以 φ ( a p ) = φ ( a ) φ ( p ) \varphi(ap)=\varphi(a)\varphi(p) φ(ap)=φ(a)φ(p)
又因为 p p p 是质数,由 性质一 可得 φ ( p ) = p − 1 \varphi(p)=p-1 φ(p)=p1
所以 φ ( a p ) = ( p − 1 ) φ ( a ) \varphi(ap)=(p-1)\varphi(a) φ(ap)=(p1)φ(a)

欧拉定理

若正整数 a a a n n n 互质,则 a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi(n)} \equiv 1\pmod{n} aφ(n)1(modn),其中 φ ( n ) \varphi(n) φ(n) 为欧拉函数。

证明
设 1 到 n n n 中所有与 n n n 互质的数为 a 1 , a 2 , . . . , a φ ( n ) a_{1},a_{2},...,a_{\varphi(n)} a1,a2,...,aφ(n)
因为 a a a n n n 互质, a 1 a_{1} a1 n n n 互质 ( a ≡ 1 ( m o d n ) a \equiv 1\pmod{n} a1(modn) 并且 a 1 ≡ 1 ( m o d n ) a_{1} \equiv 1\pmod{n} a11(modn)
所以 a a 1 aa_{1} aa1 与 n 互质 ( a a 1 ≡ 1 ( m o d n ) aa_{1} \equiv 1\pmod{n} aa11(modn)
同理 a a 1 , a a 2 , . . . , a a φ ( n ) aa_{1},aa_{2},...,aa_{\varphi(n)} aa1,aa2,...,aaφ(n) 都与 n n n 互质
所以 a a 1 × a a 2 × . . . × a a φ ( n ) = a φ ( n ) × ( a 1 a 2 . . . a φ ( n ) ) aa_{1} \times aa_{2} \times ... \times aa_{\varphi(n)}=a^{\varphi(n)} \times \left ( a_{1}a_{2}...a_{\varphi(n)}\right ) aa1×aa2×...×aaφ(n)=aφ(n)×(a1a2...aφ(n)) n n n 互质
又因为 a φ ( n ) × ( a 1 a 2 . . . a φ ( n ) ) ≡ a 1 a 2 . . . a φ ( n ) ( m o d n ) a^{\varphi(n)} \times \left ( a_{1}a_{2}...a_{\varphi(n)}\right ) \equiv a_{1}a_{2}...a_{\varphi(n)} \pmod{n} aφ(n)×(a1a2...aφ(n))a1a2...aφ(n)(modn)
所以 a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi(n)} \equiv 1\pmod{n} aφ(n)1(modn)

费马小定理

为欧拉定理的一种情况。
p p p 为质数,则对于任意整数 a a a,有 a p ≡ a ( m o d p ) a^{p} \equiv a \pmod{p} apa(modp),即 a p − 1 ≡ 1 ( m o d p ) a^{p-1} \equiv 1 \pmod{p} ap11(modp)

证明
是欧拉函数的一种情况
φ ( p ) = p − 1 \varphi(p)=p-1 φ(p)=p1 带入即可

欧拉函数求法

求单个数的欧拉函数

只要在 分解质因数 时顺便将欧拉函数求出来就好了。

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

线性求多个数的欧拉函数

在 线性筛 实现的时候顺便求欧拉函数。

void euler(int x) 
{   // primes数组存质数
	// phi数组存欧拉函数
	for(int i = 2; i <= x; i ++) 
	{
		if(!st[i]) 
		{
			primes[cn++] = i; 
			phi[i] = i - 1;
			//这句利用性质一
		}
		for(int j = 0; primes[j] <= x / i; j ++) 
		{ 
			st[ primes[j] * i ] = 1;
			phi[ primes[j] * i ] = phi[i] * (i % primes[j] ? primes[j] - 1 : primes[j]);
			// 这句利用了性质六、七
			if( i % primes[j] == 0 ) break;
		}
	}
}

OK,笔记完。
本蒟蒻刚学 OI ,如有错误请 D 我!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值