数论笔记

1 说明

  1. 人民教育出版社 A版: 数学选修 4-6 初等数论初步
  2. 人民教育出版社 B版: 数学选修 4-6 初等数论初步
  3. 离散数学(第2版) 初等数论部分
  4. 基础数论典型题解300例
  5. 初等数论第四版第4版闵嗣鹤严士健
  6. 数论入门-从故事到理论

2 第一讲 整数的整除

定义整除的定义

设a,b∈Za,b \in \mathbb{Z},若存在整数k≠0k \neq 0使得a=bka=bk,则称bb是aa的因子,记作b∣ab \mid a,否则记做b∤ab \nmid a。

性质

  1. 互为因子则相等: (a∣b∧b∣a)→(a=b∨a=−b)(a \mid b \land b \mid a) \to (a = b \lor a = -b).
  2. 传递性: (a∣b∧b∣c)→a∣c(a \mid b \land b \mid c) \to a \mid c
  3. a∣b∧a∣c→a∣(bx+cy),x,y∈Za \mid b \land a \mid c \to a \mid (bx + cy) , x,y \in \mathbb{Z}
  4. 消去律: ak∣xk→a∣xak \mid xk \to a \mid x

证明

(1): a∣b→∃k1≠0:a=bk1a \mid b \to \exists k_1 \neq 0: a = b k_1. 同理 b∣a→∃k2≠0:b=ak2b \mid a \to \exists k_2 \neq 0: b = a k_2. 得到b⋅k1⋅k2=b→k1⋅k2=1→k1=k2=±1b \cdot k_1 \cdot k_2 = b \to k_1 \cdot k_2 = 1 \to k_1 = k_2 = \pm 1.于是a=b∨a=−ba = b \lor a = -b

(2): 根据前件得到:a⋅k1=b,b⋅k2=c→a⋅k1⋅k2=ca \cdot k_1 = b, b \cdot k_2 = c \to a \cdot k_1 \cdot k_2 = c. 于是a∣ca \mid c

(3): 是这里最难证明的.

显然 a∣b→a∣k⋅ba \mid b \to a \mid k \cdot b.再证明a∣b∧a∣c→a∣(b+c)a \mid b \land a \mid c \to a \mid (b+c).

a∣b∧a∣c→(a⋅k1=b∧a⋅k2=c)→a⋅(k1+k2)=b+c→a∣(b+c) \begin{aligned} a \mid b \land a \mid c & \to (a \cdot k_1 = b \land a \cdot k_2 = c) \\ & \to a \cdot (k_1 + k_2) = b + c \\ & \to a \mid (b+c) \\ \end{aligned}

又因为a∣bx,a∣cya \mid bx , a \mid cy 成立,所以a∣(bx+cy)a \mid (bx + cy)成立.

(4). ak∣xk→a⋅k⋅k1=x⋅k→a⋅k1=x→a∣xak \mid xk \to a \cdot k \cdot k_1 = x \cdot k \to a \cdot k_1 = x \to a \mid x

1.2 带余除法

定理带余除法

对于任意一对整数a,ba,b,其中b≠0b \neq 0,**存在唯一一对整数q,rq,r,使得

a=bq+r,0≤r<∣b∣ a = bq + r, \quad 0 \leq r < |b|

这里没有证明.这里可以通过枚举法感性的理解它的正确性.

3. 素数判定

法1:判断单个数字是否为素数,时间为n\sqrt n

bool isPrime(int a) {
    for(int i = 2;i *i <= a;i++) {
        if( a % i == 0) return 0;
    }
    return 1;
}

如果从快速得到[1,n][1,n]之间的所有的素数呢?,如果对每一个数调用isPrime(i)isPrime(i),那时间为n×nn \times \sqrt n.

还有一种更快的方法,叫做埃氏筛法.o

它的基本思想如下:

  • 删除[1,n][1,n]之间的所有的合数.
  • [1,n][1,n]之间的所有的素数一定不会被删除.

证明这个算法的正确性,集合不漏与数学归纳法.

对某个合数a⩾2a \geqslant 2,它一定可以被不超过a\sqrt a的素数整除.那么合数aa被删除一定要保证[2,a][2,\sqrt a]之间的素数不被删除. 观察算法,发现只有一个数是两个数的乘积时才会被删除,显然素数都不会被删除.所以合数a一定被删除(不漏),所以算法的正确性是显然的.

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e5+5;
bool del[maxn]; // 0 表示没有删除
vector<int> prime;

//埃式筛法
/* 原理: 
 *  - 2是最小的的素数,2的k倍都不是素数,k>=2
 *  - 下一个没有被筛掉的数是3,所以3是素数(原理:合数一定可以拆出一个小于自己的素数因子)
 *      - 删除3的k>=3倍数
 *  - 4 被删除,不用岀它的倍数
 *  - ....
 * */
void E_prime(int n){
    //memset(del,0,sizeof(del));
    for(int i=2;i<=n;i++){
        if( del[i] == 0){
            prime.push_back(i);
            if( i > n / i ) continue; //防溢出
            // 为什么从i*i开始删除?
            // 这是一个优化: 对于小于i的倍数来说,都已经尝试过!!
            for(int j=i*i;j<=n;j+=i) del[j] = 1;
        }
    }
}

int main(){
    E_prime(100); // 求100内的素数
    for (const auto& e : prime) {
        cout << e << " ";
    }
    cout << endl;
    return 0;
}

因为有重复的删除,所以时间复杂度为O(nlog⁡log⁡n)O(n \log \log n),比枚举法要快.

3.1 二 最大公因数与最小公倍数

定义:

  1. 公因数: a∣b∧a∣ca \mid b \land a \mid c,a是b,cb,c的公因数.
  2. 最大公因数: gcd(b,c)=max(A),A={a∣a∣b∧a∣c}gcd(b,c) = max(A),A =\{a | a \mid b \land a \mid c\}
  3. 互素: gcd(a,b)=1gcd(a,b) = 1

我们早就就过gcdgcd,也就是辗转相除法.代码很简单,如下

int gcd(int a,int b)
{
    if(b == 0) return a;
    return gcd(b,a%b);
}

当然也可以使用c++内置的__gcd()函数.

证明:

  1. 显然00与任意数xx的最公因数都是xx本身: gcd(0,x)=xgcd(0,x) = x.

设a,b,r1a,b,r_1,其中r1=amod  br_1 = a \mod b. 也就是可以写成带余除法的形式: a=bq+r1a = bq + r_1

设(a,b)(a,b)表示a,ba,b公因数形成的集合

现在我们只要证明(a,b)=(b,r1)(a,b) = (b,r_1),就能证明gcd(a,b)=gcd(b,r1)gcd(a,b) = gcd(b,r_1)

证明:x∈(a,b)→x∈(b,r1)x \in (a,b) \to x \in (b,r_1),那么根据前提得到x∣a,x∣bx \mid a,x\mid b,又得知r1=a−bqr_1 = a -bq,根据整数的整除性质3,得到x∣a−bq→x∣r1x \mid a - bq \to x \mid r_1.得到(a,b)⊂(b,r1)(a,b) \subset (b,r_1)

证明:x∈(b,r1)→x∈(a,b)x \in (b,r_1) \to x \in (a,b),同理: x∣b,x∣r1x \mid b ,x \mid r_1,同样根据性质3得到x∣a=bq+r1x \mid a = bq + r_1,得到(b,r1)⊂(a,b)(b,r_1) \subset (a,b)

所以(a,b)=(b,r1)(a,b) = (b,r_1),得证. 你可以写一个暴力的代码验证二者的集合是不是一样.

重要性质
gcd(a,b)=ax+by gcd(a,b) = ax + by

一定成立

a,b的最大公因数可以通过最a,b各乘以一个整数后相加凑出来

证明: 辗转相除法加上数学归纳法.这个算法叫做exgcdexgcd算法.

说明
a∣bc∧gcd(a,b)=1→a∣c a \mid bc \land gcd(a,b) = 1 \to a \mid c

证明见书P11

定理

设p是素数,若p∣abp \mid ab,则 p∣a∨p∣bp \mid a \lor p \mid b

通过代码我们发现,lcm(a,b)×gcd(a,b)=∣a×b∣lcm(a,b) \times gcd(a,b) = | a \times b |

gcd_lcm.py

如果证明这个结论的正确性呢? 先使用缩小法(特例法),把问题变得简单,当a,b互质时,gcd(a,b)=1gcd(a,b) = 1, 那么lcm(a,b)=a×blcm(a,b) = a \times b. 先证明这个公式的正确性.

证明:

先把lcm(a,b)=a×blcm(a,b) = a \times b 转成我们容易理解的样子a⋅x=b⋅ya \cdot x = b \cdot y,其中x,yx,y是整数. x=b⋅yax = \frac{b \cdot y}{a},根据已知条件a,b,x,ya,b,x,y是整数,a,b互质,所以b⋅ya\frac{b \cdot y}{a}是整数.但b÷ab \div a不是整数,那么必然y÷ay \div a是整数,所以a∣ya \mid y,同理b∣xb \mid x, 得到y=k1a,x=k2by = k_1 a, x = k_2 b,代入得到ak2b=bk1a→k1=k2a k_2 b = b k_1 a \to k_1 = k_2,显然k1=k2=1k_1 = k_2 = 1,得到最小的倍数,证明结束.

证明2: 再来证明gcd(a,b)≠1gcd(a,b) \neq 1时

设gcd(a,b)×x=a,gcd(a,b)×y=bgcd(a,b) \times x = a , gcd(a,b) \times y = b,使用反证法可以得到gcd(x,y)=1gcd(x,y) = 1,也就是x,yx,y互质.

同样设lcm(a,b)=a×k1=b×k2lcm(a,b) = a \times k_1 = b \times k_2,其中k1,k2k_1,k_2是整数.

综上得到 gcd(a,b)×x×k1=gcd(a,b)×y×k2→x×k1=y×k2gcd(a,b) \times x \times k_1 = gcd(a,b) \times y \times k_2 \to x \times k_1 = y \times k_2, 已经知道x,yx,y互质.根据上面已经证明的部分,得到k1=y,k2=xk_1 = y ,k_2 =x 这个时候才能使用lcm(a,b)lcm(a,b)最小

所以gcd(a,b)×lcm(a,b)=gcd(a,b)×a×y=gcd(a,b)×b×x=a×bgcd(a,b) \times lcm(a,b) = gcd(a,b) \times a \times y = gcd(a,b) \times b \times x = a \times b.证明完毕.

其时这个证明起始思想来源于 算术基本定理,通过观察lcm(a,b)×gcd(a,b)lcm(a,b) \times gcd(a,b) 各自怎么拆分得到a×ba \times b的形式,再加上任意问题都是由简单问题组成的观点递归分解证明2,我们得到了这个结论.

又同样说明了: 当我们需要证明一个结论时,先要观察数据,这个步骤在<<怎样解题>>这本书叫做熟悉题目,深入理解题目,寻求有用的思路,探索法

3.2 三 算术基本定理

定理

任何大于1的整数都可以唯一分解成素因数乘积的形式

n=p1a1×p2a2×⋯×pkak n = p_1 ^ {a_1} \times p_2 ^ {a_2} \times \cdots \times p_k ^ {a_k}

证明: 1. 存在性 2. 唯一性

存在性: 若一个数字n,不是素数,可以分解成a×ba \times b ,其中a是一个素数,b可以继续分解.

唯一性: 见书上P13. 先假设存在.然后根据素数不可能分解的性质.证明p1=q1p_1 = q_1.然后递归.

4 第二讲 同余与同余方程

  1. 利用同余关系进一步讨论了整除
  2. 剩余类. 对同一个剩余类的数引入 加法,乘法.

4.1 一 同余

引入的同余的概念:

a≡b(modn) a \equiv b \pmod{n}
a≡b(modn)⇔n∣a−b(a) a \equiv b \pmod{n} \Leftrightarrow n \mid a - b \tag a

感性的理解: 长度为a,b的木棍对于n都有相同的余数.也就多出来的长度一样.相减后,去除了那个多的部分.

证明: 写成带余除法a=nq+r,b=n′q′+r′a = nq+r,b = n'q'+r'

必要性: 根据前提显然r=r′r = r',a−b=n(q−q′)→n∣a−ba - b = n(q-q') \to n \mid a - b.

充分性: n∣a−b→n∣n(q−q′)+r−r′→n∣r−r′n\mid a-b \to n \mid n(q-q')+r - r' \to n \mid r - r',根据带余除法的定义,得到−n<r−r′<n→r−r′=0→r=r′-n < r - r' < n \to r - r' = 0 \to r = r',得证: a≡b(modn)a \equiv b \pmod{n}.

补充:

  1. 和的模等于模的和 (a+b)≡(a(modn)+b(modn))(modn)(a + b) \equiv (a \pmod{n} + b \pmod{n}) \pmod{n}
  2. 积的模等于模的积 (ab)≡(a(modn)b(modn))(modn)(ab) \equiv (a \pmod{n}b \pmod{n}) \pmod{n}

性质:

  1. 反身性,自反性
  2. 交换律,对称性
  3. 传递性

若a≡b(modn),c≡d(modn)a \equiv b \pmod{n},c \equiv d \pmod{n},

  1. a+c≡b+d(modn)a+c \equiv b+d \pmod{n} 可加性
  2. ac≡bd(modn)ac \equiv bd \pmod{n} 可乘性
  3. ka≡kb(modn)ka \equiv kb \pmod{n} 可乘性推论
  4. ak≡bk(modn)a^k \equiv b^k \pmod{n} 可乘性推论

证明1: 必要性

a≡b(modn),c≡d(modn)→n∣a−b,n∣c−d→k1n=a−b,k2n=c−d→(k1+k2)n=(a+c)−(b+d)→n∣(a+c)−(b+d)→a+c≡b+d(modn) \begin{aligned} a \equiv b \pmod{n},c \equiv d \pmod{n} &\to n \mid a -b ,n \mid c-d \\ & \to k_1 n = a -b , k_ 2 n = c-d \\ & \to (k_1 + k_2) n = (a+c) - (b+d) \\ &\to n \mid (a+c) - (b+d) \\ &\to a+c \equiv b+d \pmod{n} \end{aligned}

充分性只要反过来

证明2: 必要性

a≡b(modn),c≡d(modn)→n∣a−b,n∣c−d→k1n=a−b,k2n=c−d→ck1n=ac−bc,bk2n=bc−bd→(ck1+bk2)n=ac−bd→ac≡bd(modn) \begin{aligned} a \equiv b \pmod{n},c \equiv d \pmod{n} &\to n \mid a -b ,n \mid c-d \\ & \to k_1 n = a -b , k_ 2 n = c-d \\ & \to c k_1 n = ac - bc , b k_ 2 n = bc-bd \\ & \to (ck_1 + bk_2) n = ac - bd \\ & \to ac \equiv bd \pmod{n} \end{aligned}

消费律: ac≡bc(modn)∧gcd(c,n)=1→a≡b(modn)ac \equiv bc \pmod{n} \land gcd(c,n) = 1 \to a \equiv b \pmod{n}

证明: 根据同余与整除的等价关系,得到

ac≡bc(modn)⇔n∣c(b−a)→c(b−a)n∈Z→n∣b−a因为gcd(c,n)=1→a≡b(modn) \begin{aligned} ac \equiv bc \pmod{n} & \Leftrightarrow n \mid c(b-a) \\ & \to \frac{c(b-a)}{n} \in \mathbb{Z} \\ & \to n \mid b-a \quad \text{因为} gcd(c,n) = 1 \\ & \to a \equiv b \pmod{n} \end{aligned}

消费律是充分必要的.

消去律其实是下面公式的特例,这个公式出现在B版的P24.

ac≡bc(modn)⇔a≡b(modngcd(c,n)) ac \equiv bc \pmod{n} \Leftrightarrow a \equiv b \pmod{ \frac{n}{gcd(c,n)}}

证明与上面其实是一样的.

这里只证明必要性:

设c=k1⋅(c,n),n=k2⋅(c,n)c = k_1 \cdot (c,n),n = k_2 \cdot (c,n),那么k2=n(c,n)k_2 = \frac{n}{(c,n)}.

ac≡bc(modn)⇔n∣c(b−a)→c(b−a)n∈Z→k1⋅(c,n)⋅(b−a)k2⋅(c,n)∈Z→k1⋅(b−a)k2∈Z因为(k1,k2)=1,就变得和上面一样了→k2∣b−a→a≡b(modk2=n(c,n))\begin{aligned} ac \equiv bc \pmod{n} &\Leftrightarrow n \mid c(b-a) \\ & \to \frac{c(b-a)}{n} \in \mathbb{Z} \\ & \to \frac{k_1 \cdot (c,n)\cdot (b-a)}{k_2 \cdot (c,n)} \in \mathbb{Z} \\ & \to \frac{k_1 \cdot (b-a)}{k_2} \in \mathbb{Z} \\ &\quad \text{因为} (k_1,k_2) = 1,\text{就变得和上面一样了} & \to k_2 \mid b-a \\ & \to a \equiv b \pmod{k_2 = \frac{n}{(c,n)}} \\ \end{aligned}

4.2 二 剩余类及其运算

  1. 剩余类定义
  2. 代表元
  3. 公式形式a≡b(modn)⇔[a]=[b]a \equiv b \pmod{n} \Leftrightarrow [a] = [b]的解法
  4. 剩余类加法
  5. 剩余类乘法
  6. 零元
  7. 单位元
  8. 负元
  9. 逆元: 若[a][b]=[b][a]=[1][a][b] = [b][a] = [1] ,记作a−1≡b(modn)a^{-1} \equiv b \pmod{n}

非零元[a][a]有逆元的充分必要条件: gcd(a,n)=1gcd(a,n) = 1,也就是说任何素数都有逆元.

4.3 三 费马小定理与欧拉定理

先发现,后证明.

发现当m为素数时,am≡a(modm)a^m \equiv a \pmod{m}.其中a<ma < m,根据消去律可知am−1≡1(modm)a^{m-1} \equiv 1 \pmod{m}

写一下代码求一下

## 能过暴力的方式求一下 a^m = a mod m

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True


while True:
    m = int(input("请输入一个素数m:"))
    if is_prime(m):
        break;
    else:
        print("输入的不是素数,请重新输入!")

for a in range(1, m):
    a_pow_m = a**m
    a_pow_m_mod_m = a_pow_m % m
    print(f"{a}^{m} = {a_pow_m} mod {m} = {a_pow_m_mod_m}")
定理费马小定理

若pp是素数,则ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}

也就是说ap−2a^{p-2}的是aa的逆元.

证明:

a,2a,3a,⋯ ,(m−1)aa,2a,3a,\cdots ,(m-1)a对m取余数两两不等,反证法xa≡ya(modm)→x≡y(modm)xa \equiv ya \pmod {m} \to x \equiv y \pmod {m}显然不可能,所以这些数是mm完全剩余类

同样1,2,3,⋯ ,m−11,2,3,\cdots,m-1也是mm完全剩余类

所以

am−1(m−1)!≡(m−1)!(modm) a^{m-1}(m-1)! \equiv (m-1)! \pmod {m}

又因为gcd((m−1)!,m)=1gcd((m-1)!,m) = 1,根据消去律得到

am−1≡1(modm) a^{m-1} \equiv 1 \pmod {m}

4.4 欧拉定理

定义欧拉函数

ψ(n)\psi(n)表示1,2,⋯ ,n−11,2,\cdots,n-1中与n互质的个数,称为欧拉函数

  • 互素剩余类
  • 完全剩余系(集合)
  • 简化剩余系(集合)
gcd(m1,m2)=1→ψ(m1m2)=ψ(m1)⋅ψ(m2) gcd(m_1,m_2) = 1 \to \psi(m_1m_2) = \psi(m_1) \cdot \psi(m_2)
定理欧拉定理
m>1∧gcd(a,m)=1→aψ(m)≡1(modm) m> 1 \land gcd(a,m) = 1 \to a^{\psi(m)} \equiv 1 \pmod{m}

证明方法与费马小定理本质是一样的.但这要先用到x1,x2,⋯ ,xψ(m)x_1,x_2,\cdots,x_{\psi(m)}是模mm的一个简化剩余系,则kx1,kx2,⋯ ,kxψ(m)kx_1,kx_2,\cdots,kx_{\psi(m)}也是模mm的一个简化剩余系(用到了抽屉原理).

4.5 四 一次同余方程

4.6 五 拉格朗日插值法和孙子定理

4.7 六 弃九验算法

5 第三讲 一次不定方程

6 第四讲 数论在密码中的应用

7 裴蜀定理

8 威尔逊定理

定理威尔逊定理

在初等数论中,威尔逊定理给出了判定一个自然数是否为质数的充分必要条件。即:当且仅当 p{\displaystyle p}为质数时:

(p−1)!≡ −1(modp) (p-1)! \quad \equiv \ -1 \pmod {p}

这里只证明充分性.

这里需要证明一个前置的定理: 当pp是素数,n1∈[1,p−1]n_1 \in [1,p-1],必然存在唯一逆元n2∈[1,p−1]n_2 \in [1,p-1],使得n1n2≡1(modp)n_1n_2 \equiv 1 \pmod {p}

证明存在性:

n1n2≡1(modp)⇔p∣n1n2−1⇔kp=n1n2−1⇔kp−n1n2=1⇔kp+n1n2=1 \begin{aligned} n_1n_2 \equiv 1 \pmod {p} &\Leftrightarrow p \mid n_1n_2 - 1 \\ & \Leftrightarrow kp = n_1n_2 - 1 \\ & \Leftrightarrow kp - n_1n_2 = 1 \\ & \Leftrightarrow kp + n_1n_2 = 1 \\ \end{aligned}

根据裴蜀定理,因为gcd(n1,p)=1gcd(n1,p) = 1,必然存在,一对整数(k,n2)(k,n_2)使得kp+n1n2=1kp + n_1n_2 = 1成立

证明唯一性: 这里用到了群论逆元唯一性的证明:

设存在b,b′→ab≡1(modp)∧ab′≡1(modp)b,b' \to ab \equiv 1 \pmod {p} \land ab' \equiv 1 \pmod {p}

ab≡ab′(modp)→gcd(a,b)=1b≡b′(modp) \begin{aligned} ab \equiv ab' \pmod {p} \xrightarrow{ gcd(a,b) = 1} b \equiv b' \pmod {p} \\ \end{aligned}

可能存在一个a∈[1,p−1]a \in [1,p-1],它的逆元是自己本身.

a2≡1(modp)⇔p∣a2−1⇔p∣(a−1)(a+1)⇔a∈[1,p−1]a=1∨a=p−1 \begin{aligned} & a^2 \equiv 1 \pmod p \\ & \Leftrightarrow p \mid a^2 - 1 \\ & \Leftrightarrow p \mid (a-1)(a+1) \\ & \xLeftrightarrow{a \in [1,p-1]} a = 1 \lor a = p-1 \end{aligned}

于是我们可以这样说: 在x∈[1,p−1]x \in [1,p-1]中,除了1,p−11,p-1外,[2,p−2][2,p-2]这些数都存在一个对应的逆元,且两两配对.所以

∏i=2p−2x≡1(modp)→1≡1(modp)∏i=1p−2x≡1(modp)→(p−1)≡(p−1)(modp)∏i=1p−2x⋅p−1≡p−1(modp)→(p−1)!≡−1(modp) \begin{aligned} \prod_{i=2}^{p-2} x \equiv 1 \pmod {p} &\xrightarrow{ 1 \equiv 1 \pmod p} \prod_{i=1}^{p-2} x \equiv 1 \pmod {p} \\ &\xrightarrow{ (p-1) \equiv (p-1) \pmod p} \prod_{i=1}^{p-2} x \cdot p-1 \equiv p-1 \pmod {p} \\ &\rightarrow (p-1)! \quad \equiv -1 \pmod {p} \\ \end{aligned}

参考: https://zh.wikipedia.org/wiki/威尔逊定理

9 二元一次方程

定理有解的充要条件
ax+bx=c(1) ax + bx =c \tag 1

上式有解的充要条件是(a,b)∣c(a,b) | c

证明必要性:因为有解,设解为x0,y0x_0,y_0

k1(a,b)x0+k2(a,b)y0=c→(a,b)(k1x0+k2y0)=c→(a,b)∣c \begin{aligned} & k_1 (a,b) x_0 + k_2 (a,b) y_0 = c \\ & \to (a,b) (k_1 x_0 + k_2 y_0) = c \\ &\to (a,b) | c \end{aligned}

充分性:

根据裴蜀定理,必然存在一给整数x0,y0x_0,y_0,使得

ax0+by0=(a,b) a x_0 + b y_0 = (a,b)

设(a,b)⋅k=c→k=c(a,b)(a,b) \cdot k = c \to k = \frac{c}{(a,b)},则上式两边同时乘以kk得到: kax0+kby0=c→k a x_0 + k b y_0 = c \to

10 剩余系

定义完全剩余系

模mm的每个剩余类中各取一个数组成的一个集合

定义简化剩余系

模mm的互素类中各取一个数组成的一个集合

11 欧拉函数

证明欧拉函数需要先证明这几个定理

定理1: 剩余系集合相等

设m∈zm\in \mathbb{z},k,lk,l是固定的值,也是整数,且(k,m)=1(k,m) = 1

  1. 当x遍历模m的一个完全剩余系时,f(x)=kx+lf(x) = kx + l 也遍历模m的一个完全剩余系
  2. 当x遍历模m的一个简化剩余系时,f(x)=kxf(x) = kx 也遍历模m的一个简化剩余系

证明(1): 本质是证明两个集合A,BA,B相等,也就是证明两个集合里的元素完全一样.我想到了两种方法.

设集合A={x0,x1,⋯ ,xm−1}A = \{x_0,x_1 ,\cdots, x_{m-1} \},映射f(x)=(kx+l)mod  m,x inAf(x) = (kx + l) \mod m, x\ in A,f(x)f(x)的像是集合BB

本质是证明f(x)f(x)是双射. 满射是显然的(注意这里,可以想到集合B的元素是mod来的,所以B一定是A的子集),下面只证明单射就可以了(两者的数量一样)

反证法,设xi≠xjx_i \neq x_j

kxi+l≡kxj+l(modm)→kxi≡kxj(modm)→xi≡xj(modm)→xi=xj \begin{aligned} & kx_i + l \equiv kx_j + l \pmod m \\ &\to kx_i \equiv kx_j \pmod m \\ &\to x_i \equiv x_j \pmod m \\ &\to x_i = x_j \end{aligned}

简单一点,可以先证明kximod  mkx_i \mod m是完全剩余系,然后证明xi+lx_i + l本质是在一个圈上的移动,所以不会重复.

证明(2): 同理,证明f(x)f(x)是双射. 满射是显然的.下面只证明单射就可以了

设集合C={x1,x2,⋯ ,xψ(m)∣(xi,m)=1}⊂AC = \{x_1,x_2,\cdots,x_{\psi(m)} | (x_i,m) = 1\} \subset A,映射f(x)=kxmod  m,x∈Cf(x) = kx \mod m, x\in C,f(x)f(x)的像是集合DD

现在要证明集合C=DC= D,需要证明

  1. 数量一样,也就是单射,这里参考(1)的证明方法
  2. 我们知道D⊂AD \subset A,这里只需要证明D满足C从A中选元素的条件即可,即(kxi,m)=1(kx_i,m) = 1,根据算术基本定理,我们知道(kxi,m)=(k,m)(xi,m)=1(kx_i,m) = (k,m)(x_i,m) = 1,所以D满足条件,所以D⊂CD \subset C,所以C=DC = D
定理2:

设(m1,m2)=1(m_1,m_2) = 1

  1. 当x1,x2x_1,x_2遍历模m1,m2m_1,m_2的完全剩余系时,m2x+m1ym2x+m_1y也遍历模m1m2m_1m_2的完全剩余系
  2. 当x1,x2x_1,x_2遍历模m1,m2m_1,m_2的简化剩余系时,m2x+m1ym2x+m_1y也遍历模m1m2m_1m_2的简化剩余系

12 相关题解

暂无相关题解