欧拉函数与(扩展)欧拉定理

欧拉函数

定义

我们定义 φ ( x ) \varphi (x) φ(x) 为 小于 x x x 的正整数中与 x x x
互质的数的个数,称作欧拉函数。数学方式表达就是

φ ( x ) = ∑ i < x [ i ⊥ x ] \varphi(x) = \sum_{i < x} [i \bot x] φ(x)=i<x[ix]

但需要注意,我们定义 φ ( 1 ) = 1 \varphi(1) = 1 φ(1)=1

性质

  1. x x x 为质数, φ ( x ) = x − 1 \varphi(x) = x - 1 φ(x)=x1

    证明:这个很显然了,因为除了质数本身的数都与它互质。

  2. x = p k x = p^k x=pk p p p 为质数, x x x
    为单个质数的整数幂),则 φ ( x ) = ( p − 1 ) × p k − 1 \varphi(x) = (p - 1) \times p ^ {k - 1} φ(x)=(p1)×pk1

    证明:不难发现所有 p p p 的倍数都与 x x x
    不互质,其他所有数都与它互质。

    p p p 的倍数刚好有 p k − 1 p^{k-1} pk1 个(包括了 x x x 本身)。

    那么就有 φ ( x ) = p k − p k − 1 = ( p − 1 ) × p k − 1 \varphi(x) = p^k - p^{k-1} = (p - 1) \times p^{k- 1} φ(x)=pkpk1=(p1)×pk1

  3. p , q p, q p,q 互质,则有 φ ( p × q ) = φ ( p ) × φ ( q ) \varphi(p \times q) = \varphi(p) \times \varphi(q) φ(p×q)=φ(p)×φ(q) ,也就是欧拉函数是个积性函数。

    证明 :

    如果 a a a p p p 互质 ( a < p ) (a<p) (a<p) b b b q q q
    互质 ( b < q ) (b<q) (b<q) c c c p q pq pq 互质 ( c < p q ) (c<pq) (c<pq) ,则
    c c c 与数对 ( a , b ) (a,b) (a,b) 是一一对应关系。由于 a a a 的值有
    φ ( p ) \varphi (p) φ(p) 种可能, b b b 的值有 φ ( q ) \varphi(q) φ(q)
    种可能,则数对 ( a , b ) (a,b) (a,b) φ ( p ) φ ( q ) φ(p)φ(q) φ(p)φ(q) 种可能,而 c c c
    的值有 φ ( p q ) φ(pq) φ(pq) 种可能,所以 φ ( p q ) φ(pq) φ(pq) 就等于 φ ( p ) φ ( q ) φ(p)φ(q) φ(p)φ(q)

    具体来说这一条需要 中国剩余定理 以及 完全剩余系
    才能证明,感性理解一下它的思路吧。

  4. 对于一个正整数 x x x 的质数幂分解 x = p 1 k 1 × p 2 k 2 × ⋯ × p n k n = ∏ i = 1 n p i k i \displaystyle x = {p_1}^{k_1} \times {p_2}^{k_2} \times \cdots \times {p_{n} }^{k_n} = \prod _{i=1}^{n} {p_i}^{k_i} x=p1k1×p2k2××pnkn=i=1npiki

    φ ( x ) = x × ( 1 − 1 p 1 ) × ( 1 − 1 p 2 ) × ⋯ × ( 1 − 1 p n ) = x ∏ i = 1 n ( 1 − 1 p i ) \displaystyle \varphi(x) = x \times (1 - \frac{1}{p_1}) \times (1 - \frac{1}{p_2}) \times \cdots \times (1 - \frac{1}{p_n}) = x\prod_{i=1}^{n} (1-\frac{1}{p_i}) φ(x)=x×(1p11)×(1p21)××(1pn1)=xi=1n(1pi1)

    证明:

    我们考虑用前几条定理一起来证明。

    φ ( x ) = ∏ i = 1 n φ ( p i k i ) = ∏ i = 1 n ( p i − 1 ) × p i k i − 1 = ∏ i = 1 n p i k i × ( 1 − 1 p i ) = x ∏ i = 1 n ( 1 − 1 p i ) \begin{aligned} \varphi(x) &= \prod_{i=1}^{n} \varphi(p_i^{k_i}) \\ &= \prod_{i=1}^{n} (p_i-1)\times {p_i}^{k_i-1}\\ &=\prod_{i=1}^{n} {p_i}^{k_i} \times(1-\frac{1}{p_i})\\ &=x \prod_{i=1}^{n} (1-\frac{1}{p_i}) \end{aligned} φ(x)=i=1nφ(piki)=i=1n(pi1)×piki1=i=1npiki×(1pi1)=xi=1n(1pi1)

  5. p p p x x x 的约数( p p p 为质数, x x x 为任意正整数),我们有 φ ( x × p ) = φ ( x ) × p \varphi(x \times p) = \varphi(x) \times p φ(x×p)=φ(x)×p

    证明:

    我们利用之前的第 4 4 4 个性质来证明就行了。

    不难发现 ∏ i = 1 n ( 1 − 1 p i ) \displaystyle \prod _{i=1}^{n} (1 - \frac{1}{p_i}) i=1n(1pi1) 是不会变的,前面的那个 x x x 会变成 x × p x \times p x×p

    所以乘 p p p 就行了。

  6. p p p 不是 x x x 的约数( p p p 为质数, x x x
    为任意正整数),我们有 φ ( x × p ) = φ ( x ) × ( p − 1 ) \varphi(x \times p) = \varphi(x) \times (p - 1) φ(x×p)=φ(x)×(p1)

    证明 : p , x p, x p,x 互质,由于 φ \varphi φ 积性直接得到。

求欧拉函数

求解单个欧拉函数

我们考虑质因数分解,然后直接利用之前的性质 4 4 4 来求解。

快速分解的话可以用 P o l l a r d R h o PollardRho PollardRho 算法。

求解一系列欧拉函数

首先需要学习 线性筛,我们将其改一些地方。

质数 p p p φ ( p ) = p − 1 \varphi(p) = p-1 φ(p)=p1

对于枚举一个数 i i i 和另外一个质数 p p p 的积 x x x

我们在线性筛,把合数筛掉会分两种情况。

  1. p p p 不是 i i i 的一个约数,由于性质 5 5 5 就有
    φ ( x ) = φ ( i ) × ( p − 1 ) \varphi(x) = \varphi(i) \times (p - 1) φ(x)=φ(i)×(p1)
  2. p p p i i i 的一个约数,此时我们会跳出循环,由于性质 6 6 6
    φ ( x ) = φ ( i ) × p \varphi(x) = \varphi(i) \times p φ(x)=φ(i)×p
代码实现
bitset<N> is_prime; int prime[N], phi[N], cnt = 0;
void Init(int maxn) {
    is_prime.set(); is_prime[0] = is_prime[1] = false; phi[1] = 1;
    For (i, 2, maxn) {
        if (is_prime[i]) phi[i] = i - 1, prime[++ cnt] = i;
        For (j, 1, cnt) {
            int res = i * prime[j];
            if (res > maxn) break;
            is_prime[res] = false;
            if (i % prime[j]) phi[res] = phi[i] * (prime[j] - 1);
            else { phi[res] = phi[i] * prime[j]; break; }
        }
    }
}

欧拉定理

若正整数 a a a m m m 互质,则

a φ ( m ) ≡ 1 ( m o d m ) a^{\varphi(m)} \equiv 1\pmod m aφ(m)1(modm)

扩展欧拉定理

a b ≡ { a b b < φ ( p ) a b     m o d     φ ( p ) + φ ( p ) b ≥ φ ( p ) ( m o d p ) a^b\equiv \begin{cases} a^b & b<\varphi(p)\\ a^{b \ \bmod \ \varphi(p) + \varphi(p)} & b\geq\varphi(p) \end{cases} \pmod p ab{abab mod φ(p)+φ(p)b<φ(p)bφ(p)(modp)

简单证明一下欧拉定理和扩展欧拉定理:

欧拉函数的定义: φ ( n ) = ∑ i = 1 n [ gcd ⁡ ( i , n ) = 1 ] \varphi(n)=\sum\limits_{i=1}^{n}[\gcd(i,n)=1] φ(n)=i=1n[gcd(i,n)=1]

欧拉函数的性质:

  • n = p k n=p^k n=pk,其中 p p p 为质数,则 φ ( n ) = p k − p k − 1 = ( p − 1 ) p k − 1 \varphi(n)=p^k-p^{k-1}=(p-1)p^{k-1} φ(n)=pkpk1=(p1)pk1。因为 n n n 只有 p p p 一个素因子,所以除了 p p p 的倍数之外其余数都与 n n n 互质。
欧拉定理

对于两个正整数 a , n a,n a,n,若 gcd ⁡ ( a , n ) = 1 \gcd(a,n)=1 gcd(a,n)=1,则:
a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi(n)} \equiv 1 \pmod n aφ(n)1(modn)
设有 φ ( n ) \varphi(n) φ(n) 个数 x 1 , x 2 , … , x φ ( n ) x_1,x_2,\dots,x_{\varphi(n)} x1,x2,,xφ(n),满足 ∀ i , 1 ≤ i ≤ φ ( n ) : gcd ⁡ ( x i , n ) = 1 , x i < n \forall i,1 \leq i \leq \varphi(n):\gcd(x_i,n)=1,x_i< n i,1iφ(n):gcd(xi,n)=1,xi<n

易见这 φ ( n ) \varphi(n) φ(n) 个数模 n n n 两两不同并且余数与 n n n 互质。

考虑证明 a x 1 , a x 2 , … , a x φ ( n ) ax_1,ax_2,\dots,ax_{\varphi(n)} ax1,ax2,,axφ(n) 也满足以上两个性质。

  • φ ( n ) \varphi(n) φ(n) 个数模 n n n 两两不同:

    • 使用反证法。

      ∃ 1 ≤ i < j ≤ φ ( n ) : a x i − a x j ≡ 0 (   m o d     n ) \exists 1 \leq i < j \leq \varphi(n):ax_i-ax_j \equiv 0(\bmod \ n) 1i<jφ(n):axiaxj0(mod n)。因为 gcd ⁡ ( a , n ) = 1 \gcd(a,n)=1 gcd(a,n)=1,又因为 a i − a j a_i-a_j aiaj 不可能是 n n n 的倍数,因此假设不成立。所以 a x 1 , a x 2 , … , a x φ ( n ) ax_1,ax_2,\dots,ax_{\varphi(n)} ax1,ax2,,axφ(n) n n n 两两不同;

  • 余数与 n n n 互质: gcd ⁡ ( a , n ) = 1 , gcd ⁡ ( x i , n ) = 1 \gcd(a,n)=1,\gcd(x_i,n)=1 gcd(a,n)=1,gcd(xi,n)=1。所以 gcd ⁡ ( a x i , n ) = 1 \gcd(ax_i,n)=1 gcd(axi,n)=1。类似于辗转相除法可以证明这个结论。

所以 a x 1 , a x 2 , … , a x φ ( n ) ax_1,ax_2,\dots,ax_{\varphi(n)} ax1,ax2,,axφ(n) 也满足以上两个性质。

我们发现与 n n n 互质并且小于 n n n φ ( n ) \varphi(n) φ(n) 个数是固定的。

所以对于任意 1 ≤ i ≤ φ ( n ) 1 \leq i \leq \varphi(n) 1iφ(n),都存在唯一一个 1 ≤ j ≤ φ ( n ) 1 \leq j \leq \varphi(n) 1jφ(n),满足 x i ≡ a x j (   m o d     n ) x_i \equiv ax_j(\bmod \ n) xiaxj(mod n)

因此:
a x 1 a x 2 … a x φ ( n ) ≡ x 1 x 2 … x φ ( n ) (   m o d     n ) ax_1ax_2\dots ax_{\varphi(n)} \equiv x_1x_2\dots x_{\varphi(n)} (\bmod \ n) ax1ax2axφ(n)x1x2xφ(n)(mod n)
两边消掉(互质),得到:
a φ ( n ) ≡ 1 (   m o d     n ) a^{\varphi(n)}\equiv 1(\bmod \ n) aφ(n)1(mod n)
证毕。

扩展欧拉定理
命题 1 1 1:当 a a a 为质数时, p c ≡ p c     m o d     φ ( m ) + φ ( m ) ( m o d m ) p^c \equiv p^{c \ \bmod\ \varphi(m)+\varphi(m) \pmod{m}} pcpc mod φ(m)+φ(m)(modm) 成立

证明:

m = s ⋅ p r m=s \cdot p^r m=spr gcd ⁡ ( s , p ) = 1 \gcd(s,p)=1 gcd(s,p)=1

因为 p φ ( s ) ≡ 1 ( m o d s ) p^{\varphi(s)}\equiv 1 \pmod s pφ(s)1(mods)(欧拉定理),又有 gcd ⁡ ( s , p ) = 1 \gcd(s,p)=1 gcd(s,p)=1,根据性质一,有 φ ( s ) ∣ φ ( m ) \varphi(s)|\varphi(m) φ(s)φ(m),也就是说 p φ ( m ) ≡ 1 ( m o d s ) p^{\varphi(m)}\equiv 1\pmod s pφ(m)1(mods)

根据同余的性质,两边同乘 p r p^r pr,得 p φ ( m ) + r ≡ p r ( m o d m ) p^{\varphi(m)+r}\equiv p^r \pmod m pφ(m)+rpr(modm)

那么 p c ≡ p c − r + r ≡ p φ ( m ) + r ( m o d m ) , c ≥ r p^c \equiv p^{c-r+r}\equiv p^{\varphi(m)+r} \pmod m,c \ge r pcpcr+rpφ(m)+r(modm),cr

显然 r ≤ φ ( m ) r \le \varphi(m) rφ(m),因此 p c ≡ p φ ( m ) + c   m o d   m , c ≥ φ ( m ) p^c\equiv p^{\varphi(m)+c}\bmod m,c \ge \varphi(m) pcpφ(m)+cmodm,cφ(m)

上面式子就可以表示为 p c ≡ p c     m o d     φ ( m ) + φ ( m ) ( m o d m ) , c ≥ φ ( m ) p^c \equiv p^{c \ \bmod \ \varphi(m) +\varphi(m)} \pmod m,c \ge \varphi(m) pcpc mod φ(m)+φ(m)(modm),cφ(m)

命题 2 2 2:当 a a a 为质数的幂时, p c ≡ p c     m o d     φ ( m ) + φ ( m ) ( m o d m ) p^c \equiv p^{c \ \bmod\ \varphi(m)+\varphi(m) \pmod{m}} pcpc mod φ(m)+φ(m)(modm) 成立

证明:
( p k ) c = p k c ≡ p φ ( m ) + k c ≡ p k φ ( m ) + k c = ( p k ) φ ( m ) + c ≡ ( p k ) c     m o d     φ ( m ) + φ ( m ) ( m o d m ) , c ≥ φ ( m ) (p^k)^c = p^{kc} \equiv p^{\varphi(m)+kc} \equiv p^{k\varphi(m)+kc}=(p^k)^{\varphi(m)+c}\equiv (p^k)^{c \ \bmod \ \varphi(m)+\varphi(m)} \pmod m,c \ge \varphi(m) (pk)c=pkcpφ(m)+kcpkφ(m)+kc=(pk)φ(m)+c(pk)c mod φ(m)+φ(m)(modm),cφ(m)

命题 3 3 3:当 a a a 为合数时, p c ≡ p c     m o d     φ ( m ) + φ ( m ) ( m o d m ) p^c \equiv p^{c \ \bmod\ \varphi(m)+\varphi(m) \pmod{m}} pcpc mod φ(m)+φ(m)(modm) 成立

证明:

a = ∏ p i a=\prod p_i a=pi p i p_i pi 且质数,那么有:
a b = ∏ p i b = ∏ p i b     m o d     φ ( m ) + φ ( m ) = ( ∏ p i ) b     m o d     φ ( m ) + φ ( m ) = a b     m o d   φ ( m ) + φ ( m ) ( m o d m ) a^b=\prod p_i^b\\=\prod p_i^{b \ \bmod \ \varphi(m) +\varphi(m)}\\=\left( \prod p_i\right)^{b \ \bmod \ \varphi(m)+\varphi(m)}\\=a^{b \ \bmod \varphi(m) +\varphi(m)}\pmod m ab=pib=pib mod φ(m)+φ(m)=(pi)b mod φ(m)+φ(m)=ab modφ(m)+φ(m)(modm)
证毕。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值