【数论】欧拉函数

3 篇文章 0 订阅

1 数论函数

函数: 函数具备两个要素——值域和定义域。
f ( x ) ⏟ 值域 = x − 1 ⏟ 定义域 \underbrace{f(x)}_{值域}=\underbrace{x-1}_{定义域} 值域 f(x)=定义域 x1

  • 定义域:变量 x x x 的取值范围
  • 值域:对应的函数 f ( x ) f(x) f(x) 的取值范围

数论函数: 非特殊要求情况下,定义域为正整数的函数。

对于数论函数,有一下三种类型:

  1. 普通的函数
  2. 完全积性函数: 对于两个整数 n n n m m m,函数满足条件

f ( m n ) = f ( m ) f ( n ) f(mn)=f(m)f(n) f(mn)=f(m)f(n)

  1. 积性函数: 对于两个素数 n n n m m m,函数满足条件

f ( m n ) = f ( m ) f ( n ) f(mn)=f(m)f(n) f(mn)=f(m)f(n)

常数函数:
1 ( n ) = 1 1(n)=1 1(n)=1
单位函数:

[ 表达式 ] [表达式] [表达式]:如果表达式为真,则等于 1 1 1 ;反之等于 0 0 0
ε ( n ) = [ n = 1 ] \varepsilon(n)=[n=1] ε(n)=[n=1]
单位函数也是一种完全积性函数
ε ( m n ) = { 1 m = 1 , n = 1 0 m ≠ 1 ∨ n ≠ 1 \varepsilon(mn)= \begin{cases} 1 & m=1,n=1\\ 0 & m\ne 1\vee n\ne 1 \end{cases} ε(mn)={10m=1,n=1m=1n=1

2 欧拉函数

φ ( n ) \varphi(n) φ(n) [ 1 , n ] [1,n] [1,n] 中与 n n n 互质的数的个数 ( n ∈ N ∗ ) (n\in\N^*) (nN)

定义式:
φ ( n ) = ∑ i = 1 n [ ( i , n ) = 1 ] \varphi(n)=\sum_{i=1}^n[(i,n)=1] φ(n)=i=1n[(i,n)=1]
欧拉函数式积性函数(非完全)。

欧拉函数公式:
φ ( n ) = n ∏ p ∣ n p 为素数 ( 1 − 1 p ) \varphi(n)=n\prod_{\begin{aligned}&\scriptsize{p\mid n}\\ &\scriptsize{p为素数} \end{aligned}}\left(1-\frac{1}{p}\right) φ(n)=npnp为素数(1p1)
补充:容斥原理

规律为“奇加偶减”,例如三个集合的容斥: A + B + C − A ∩ B − A ∩ C − B ∩ C + A ∩ B ∩ C A+B+C-A\cap B-A\cap C-B\cap C+ A\cap B\cap C A+B+CABACBC+ABC

证明:

讨论 n 由两种质因子 p , q 的情况 : 讨论n由两种质因子p,q的情况: 讨论n由两种质因子p,q的情况:

[ 1 , n ] 中 p 的倍数: [1,n]中p的倍数: [1,n]p的倍数:
p , 2 p , 3 p , … , n p p p,2p,3p,\ldots,\frac{n}{p}p p,2p,3p,,pnp
[ 1 , n ] 中 q 的倍数: [1,n]中q的倍数: [1,n]q的倍数:
q , 2 q , 3 q , … , n q q q,2q,3q,\ldots,\frac{n}{q}q q,2q,3q,,qnq
则一共有: 则一共有: 则一共有:
n p + n q − n p q \frac{n}{p}+\frac{n}{q}-\frac{n}{pq} pn+qnpqn
则 [ 1 , n ] 中剩余的数即为互质的数: 则[1,n]中剩余的数即为互质的数: [1,n]中剩余的数即为互质的数:
φ ( n ) = n − n p − n q + n p q = n ( n − 1 p ) ( n − 1 q ) \begin{aligned} \varphi(n) &= n-\frac{n}{p}-\frac{n}{q}+\frac{n}{pq}\\ &= n\left(n-\frac{1}{p}\right)\left(n-\frac{1}{q}\right) \end{aligned} φ(n)=npnqn+pqn=n(np1)(nq1)
同理,得到公式: 同理,得到公式: 同理,得到公式:
φ ( n ) = n ∏ p ∣ n p 为素数 ( 1 − 1 p ) \varphi(n)=n\prod_{\begin{aligned}&\scriptsize{p\mid n}\\ &\scriptsize{p为素数} \end{aligned}}\left(1-\frac{1}{p}\right) φ(n)=npnp为素数(1p1)
性质:
φ ( n ) = n − 1 ( n 为素数 ) (1) \varphi(n)=n-1(n为素数)\tag1 φ(n)=n1(n为素数)(1)

若 n = p k , φ ( n ) = p k − p k − 1 ( p 为素数 ) (2) 若n=p^k,\varphi(n)=p^k-p^{k-1}(p为素数)\tag2 n=pk,φ(n)=pkpk1(p为素数)(2)

φ ( 2 n ) = φ ( n ) ( n 为素数 ) (3) \varphi(2n)=\varphi(n)(n为素数)\tag3 φ(2n)=φ(n)(n为素数)(3)

∑ d ∣ n φ ( d ) = n (4) \sum_{d\mid n}\varphi(d)=n\tag4 dnφ(d)=n(4)

若 p ∣ n , 且 p 2 ∣ n , 则 φ ( n ) = φ ( n p ) p (5) 若p\mid n,且p^2\mid n,则\varphi(n)=\varphi\left(\frac{n}{p}\right)p\tag5 pn,p2n,φ(n)=φ(pn)p(5)

C++求欧拉函数Euler_func()

void Euler_func(int n) {
    is_prime[0] = is_prime[1] = true;
    size = 0;
    for (int i = 2; i <= n; i++) {
        if (!is_prime[i]) {
            prime[++size] = i;  
            phi[i] = i - 1;   //性质1
        }
        for (int j = 1; j <= size && i * prime[j] <= n; j++) {
            is_prime[i * prime[j]] = true;
            if (i % prime[j] == 0) {
                phi[i * prime[j]] = phi[i] * prime[j];  //性质5
                break;
            }
            phi[i * prime[j]] = phi[i] * phi[prime[j]];  //积性函数
        }
    }
}

3 莫比乌斯函数

莫比乌斯函数:
μ ( n ) = { 1 n = 1 ( − 1 ) r n = ∏ i = 1 r p i ( p 1 ≠ p 2 ≠ … p r , p 1 ∼ r 为质数 ) 0 e l s e \mu(n)= \begin{cases} 1 &n = 1\\ (-1)^r &n=\prod_{i=1}^rp_i(p_1\ne p_2\ne\dots p_r,p_{1\sim r}为质数)\\ 0 &else \end{cases} μ(n)= 1(1)r0n=1n=i=1rpi(p1=p2=pr,p1r为质数)else
μ ( n ) = ( − 1 ) r \mu(n)=(-1)^r μ(n)=(1)r 的条件也可以说成 n n n平方因子

莫比乌斯函数是积性函数(非完全)。

C++求莫比乌斯函数Mobius_func()

void Mobius_func(int n) {
    is_prime[0] = is_prime[1] = true;
    size = 0;
    mu[1] = 1;
    for (int i = 2; i <= n; i++) {
        if (!is_prime[i]) {
            prime[++size] = i;  
            mu[i] = -1;  //素数无平方因子,且只有一个质因子,r=1,mu(n) = -1
        }
        for (int j = 1; j <= size && i * prime[j] <= n; j++) {
            is_prime[i * prime[j]] = true;
            if (i % prime[j] == 0) {
                mu[i * prime[j]] = 0;  //有平方因子,mu(n) = 0
                break;
            }
            mu[i * prime[j]] = -mu[i];  //积性函数,mu(n) * mu(p) = -mu(n)
        }
    }
}

4 欧拉定理和欧拉降幂

欧拉定理:
若 ( a , m ) = 1 , 则  a φ ( b ) − 1 ≡ 1 ( m o d    m ) 若(a,m)=1,则\ a^{\varphi(b) - 1} \equiv 1(\mod m) (a,m)=1, aφ(b)11(modm)
观察欧拉定理与费马小定理,可以发现,费马小定理是欧拉定理的特例。

根据欧拉定理,对于求 x x x 的问题 a b ≡ x ( m o d    m ) a^b\equiv x(\mod m) abx(modm),可以化简原式,将 a a a 的指数 b b b 减小,也就是欧拉降幂

欧拉降幂:
a b = { a b b < φ ( m ) a ( b m o d    φ ( m ) ) + φ ( m ) b ≥ φ ( m ) ( m o d    m ) a^b= \begin{cases} a^b &b<\varphi(m)\\ a^{(b\mod \varphi(m)) +\varphi(m)} &b\ge \varphi(m) \end{cases} (\mod m) ab={aba(bmodφ(m))+φ(m)b<φ(m)bφ(m)(modm)

5 例题:二元一次不定方程的解

题目描述:

需要求解的方程为:
a x + b y = 1 ax+by=1 ax+by=1
其中 a a a b b b 为已知的正整数。

找出 x x x 的最小非负整数解和对应的 y y y,没有输出sorry

题解:
a x + b y = 1 a x = 1 − b y a x ≡ 1 ( m o d    b ) \begin{aligned} ax + by &= 1\\ ax &= 1 - by\\ ax &\equiv 1(\mod b) \end{aligned} ax+byaxax=1=1by1(modb)
也就是说, x x x a a a b b b 的逆元。

欧拉定理求逆元:
x = a φ ( b ) − 1 m o d    b ( ( a , b ) = 1 ) x=a^{\varphi(b)-1}\mod b((a,b)=1) x=aφ(b)1modb((a,b)=1)
在本题中,如果出现 ( a , b ) ≠ 1 (a,b)\ne 1 (a,b)=1 的情况,则无符合题意的解,即输出sorry

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值