数论之基础

本文对于数论的开头部分做一个简介。

符号

整除/同余理论常见符号

  1. 整除符号: x ∣ y x|y xy,表示 x x x 整除 y y y,即 x x x y y y 的因数。
  2. 取模符号: x   m o d   y x \bmod y xmody,表示 x x x 除以 y y y得到的余数。
  3. 互质符号: x ⊥ y x \perp y xy,表示 x , y x,y x,y 互质。
  4. 最大公约数: g c d ( x , y ) gcd(x, y) gcd(x,y),在无混淆意义的时侯可以写作 ( x , y ) (x, y) (x,y)
  5. 最小公倍数: l c m ( x , y ) lcm(x, y) lcm(x,y),在无混淆意义的时侯可以写作 [ x , y ] [x, y] [x,y]

数论函数常见符号

​ 求和符号: ∑ \sum 符号,表示满足特定条件的数的和。举几个例子:
∑ i = 1 n i \sum_{i=1}^{n}{i} i=1ni表示 1 + 2 + . . . + n 1+2+...+n 1+2+...+n的和。其中 i i i是一个变量,在求和符号的意义下 i i i通常是正整数或者非负整数(除非特殊说明)。这个式子的含义可以理解为, i i i 1 1 1循环到 n n n,所有 i i i的和。这个式子用代码的形式很容易表达。当然,学过简单的组合数学的同学都知道 ∑ i = 1 n i = n ( n + 1 ) 2 \sum_{i=1}^{n}{i}=\frac{n(n+1)}{2} i=1ni=2n(n+1)
∑ S ⊆ T ∣ S ∣ \sum_{S \subseteq T}{|S|} STS表示所有被 T T T包含的集合的大小的和。
∑ p ≤ n , p ⊥ n 1 \sum_{p \leq n, p\perp n}{1} pn,pn1 表示的是 n n n以内有多少个与 n n n互质的数,即 φ ( n ) \varphi(n) φ(n) φ \varphi φ 是欧拉函数。

​ 求积符号: ∏ \prod 符号,表示满足特定条件的数的积。举几个例子:
∏ i = 1 n i \prod_{i=1}^{n}{i} i=1ni表示 n n n的阶乘,即 n ! n! n!。在组合数学常见符号中会讲到。
∏ i = 1 n a i \prod_{i=1}^{n}{a_i} i=1nai表示 a 1 × a 2 × a 3 × . . . × a n a_{1}\times a_{2}\times a_{3}\times ...\times a_{n} a1×a2×a3×...×an
∏ x ∣ d x \prod_{x|d}{x} xdx表示 d d d的所有因数的乘积。
​ 在行间公式中,求和符号与求积符号的上下条件会放到符号的上面和下面,这一点要注意。

其他常见符号

  1. 阶乘符号 ! ! ! n ! n! n!表示 1 × 2 × 3 × . . . × n 1\times 2\times 3\times...\times n 1×2×3×...×n。特别地, 0 ! = 1 0! = 1 0!=1
  2. 向下取整符号: ⌊ x ⌋ \lfloor x \rfloor x,表示小于等于 x x x的最大的整数。常用于分数,比如分数的向下取整 ⌊ x y ⌋ \lfloor \frac{x}{y} \rfloor yx
  3. 向上取整符号: ⌈ x ⌉ \lceil x \rceil x,与向下取整符号相对,表示大于等于 x x x的最小的整数。

整除

整除的定义: 设 𝑎, 𝑏 ∈ Z,𝑎 ≠ 0。如果 ∃𝑞 ∈ Z,使得 𝑏 = 𝑎𝑞,那么就说 𝑏 可被 𝑎 整除,记作 𝑎 ∣ 𝑏,且称 𝑏 是 𝑎 的倍数,𝑎 是 𝑏 的约数(因数)。

​ 𝑏 不被 𝑎 整除记作 𝑎 ∤ 𝑏。

整除的性质:

• 𝑎 ∣ 𝑏 ⟺ −𝑎 ∣ 𝑏 ⟺ 𝑎 ∣ −𝑏 ⟺ |𝑎| ∣ |𝑏|

• 𝑎 ∣ 𝑏 ∧ 𝑏 ∣ 𝑐 ⟹ 𝑎 ∣ 𝑐

• 𝑎 ∣ 𝑏 ∧ 𝑎 ∣ 𝑐 ⟺ ∀𝑥, 𝑦 ∈ Z, 𝑎 ∣ (𝑥𝑏 + 𝑦𝑐)

• 𝑎 ∣ 𝑏 ∧ 𝑏 ∣ 𝑎 ⟹ 𝑏 = ±𝑎

• 设 𝑚 ≠ 0,那么 𝑎 ∣ 𝑏 ⟺ 𝑚𝑎 ∣ 𝑚𝑏。

• 设 𝑏 ≠ 0,那么 𝑎 ∣ 𝑏 ⟹ |𝑎| ≤ |𝑏|。

• 设 𝑎 ≠ 0, 𝑏 = 𝑞𝑎 + 𝑐,那么 𝑎 ∣ 𝑏 ⟺ 𝑎 ∣ 𝑐。

0 是所有非 0 整数的倍数。对于整数 𝑏 ≠ 0,𝑏 的约数只有有限个。

显然约数(显然因数):对于整数 𝑏 ≠ 0,±1、±𝑏 是 𝑏 的显然约数。当 𝑏 = ±1 时,𝑏 只有两个显然约数。

对于整数 𝑏 ≠ 0,𝑏 的其他约数称为真约数(真因数、非显然约数、非显然因数)。

约数的性质:

• 设整数 𝑏 ≠ 0。当 𝑑 遍历 𝑏 的全体约数的时候, b d \frac{b}{d} db也遍历 𝑏 的全体约数。

• 设整数 𝑏 > 0,则当 𝑑 遍历 𝑏 的全体正约数的时候, b d \frac{b}{d} db也遍历 𝑏 的全体正约数。

带余数除法

余数的定义: 设 𝑎, 𝑏 为两个给定的整数,𝑎 ≠ 0。设 𝑑 是一个给定的整数。那么,一定存在唯一的一对整数 𝑞 和 𝑟,满足 𝑏 = 𝑞𝑎 + 𝑟, 𝑑 ≤ 𝑟 < |𝑎| + 𝑑。

​ 无论整数 𝑑 取何值,𝑟 统称为余数。𝑎 ∣ 𝑏 等价于 𝑎 ∣ 𝑟。

​ 一般情况下,𝑑 取 0 0 0,此时等式 𝑏 = 𝑞𝑎 + 𝑟, 0 ≤ 𝑟 < |𝑎| 称为带余数除法(带余除法)。这里的余数 𝑟 称为最小非负余数。

​ 余数往往还有两种常见取法:

​ 绝对最小余数:𝑑 取 𝑎 的绝对值的一半的相反数。即 b = q a + r , − ∣ a ∣ 2 ≤ r < ∣ a ∣ − ∣ a ∣ 2 b = qa + r,-\frac{|a|}{2}\leq r <|a|-\frac{|a|}{2} b=qa+r,2ar<a2a

​ 最小正余数:𝑑 取 1。即 𝑏 = 𝑞𝑎 + 𝑟, 1 ≤ 𝑟 < |𝑎| + 1。

​ 带余数除法的余数只有最小非负余数。如果没有特别说明,余数总是指最小非负余数。

余数的性质:

• 任一整数被正整数 𝑎 除后,余数一定是且仅是 0 到 (𝑎 − 1) 这 𝑎 个数中的一个。

• 相邻的 𝑎 个整数被正整数 𝑎 除后,恰好取到上述 𝑎 个余数。特别地,一定有且仅有一个数被 𝑎 整除。

最大公约数与最小公倍数

关于公约数、公倍数、最大公约数与最小公倍数,四个名词的定义,这里暂时不赘述,详情可参见别的博客。

互素

​ 两个整数互素(既约)的定义:若 gcd(𝑎1 , 𝑎2 ) = 1,则称 𝑎1 和 𝑎2 互素(既约)。

​ 多个整数互素(既约)的定义:若 gcd(𝑎1 , … , 𝑎𝑘 ) = 1,则称 𝑎1 , … , 𝑎𝑘 互素(既约)。

​ 多个整数互素,不一定两两互素。例如 6、10 和 15 互素,但是任意两个都不互素。

​ 互素的性质与最大公约数理论:裴蜀定理(Bézout’s identity)。见 裴蜀定理

辗转相除法

​ 辗转相除法是一种算法,也称 Euclid 算法。

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

素数与合数

设整数 𝑝 ≠ 0, ±1。如果 𝑝 除了显然约数外没有其他约数,那么称 𝑝 为素数(不可约数)。

若整数 𝑎 ≠ 0, ±1 且 𝑎 不是素数,则称 𝑎 为合数。

𝑝 和 −𝑝 总是同为素数或者同为合数。如果没有特别说明,素数总是指正的素数。

整数的因数是素数,则该素数称为该整数的素因数(素约数)。

素数与合数的简单性质:

• 大于 1 的整数 𝑎 是合数,等价于 𝑎 可以表示为整数 𝑑 和 𝑒(1 < 𝑑, 𝑒 < 𝑎)的乘积。

• 如果素数 𝑝 有大于 1 的约数 𝑑,那么 𝑑 = 𝑝。

• 大于 1 的整数 𝑎 一定可以表示为素数的乘积。

• 对于合数 𝑎,一定存在素数 𝑝 ≤ √𝑎 使得 𝑝 ∣ 𝑎。

• 素数有无穷多个。

• 所有大于 3 的素数都可以表示为 6𝑛 ± 1 的形式。

算术基本定理

算术基本引理:

​ 设 𝑝 是素数, p ∣ a 1 a 2 p|a_{1}a_{2} pa1a2,那么 p ∣ a 1 p|a_{1} pa1 p ∣ a 2 p|a_{2} pa2至少有一个成立。

​ 算术基本引理是素数的本质属性,也是素数的真正定义。

​ 上文给出的素数定义,事实上叫做不可约数,素数是不可约数的子集。在一些整环中,不可约数和素数是两个不同的集合,在两集合不相等的整环中,算术基本定理不成立。由于整数范围内两个集合完全一致,因此可以不做区分。

算术基本定理(唯一分解定理):

​ 设正整数 𝑎,那么必有表示:
a = p 1 p 2 . . . p s a=p_1p_2...p_s a=p1p2...ps
其中 p j ( 1 ≤ j ≤ s ) p_{j}(1\leq j\leq s) pj(1js)是素数。并且在不计次序的意义下,该表示唯一。

标准素因数分解式:

将上述表示中,相同的素数合并,可得:
a = p 1 a 1 p 2 a 2 . . . p s a s , p 1 < p 2 < . . . < p s a = p_1^{a_1}p_2^{a_2}...p_s^{a_s}, \quad p_1<p_2<...<p_s a=p1a1p2a2...psas,p1<p2<...<ps

称为正整数 𝑎 的标准素因数分解式。

算术基本定理和算术基本引理,两个定理是等价的。

同余

​ 同余的定义:设整数 𝑚 ≠ 0。若 𝑚 ∣ (𝑎 − 𝑏),称 𝑚 为模数(模),𝑎 同余于 𝑏 模 𝑚,𝑏 是 𝑎 对模 𝑚 的剩余。记作 a ≡ b (   m o d   m ) a \equiv b (\bmod m) ab(modm)

​ 否则,𝑎 不同余于 𝑏 模 𝑚,𝑏 不是 𝑎 对模 𝑚 的剩余。记作 a ≢ b (   m o d   m ) a\not\equiv b(\bmod m) ab(modm)

​ 这样的等式,称为模 𝑚 的同余式,简称同余式。

​ 根据整除的性质,上述同余式也等价于 a ≡ b (   m o d   ( − m ) ) a\equiv b(\bmod (-m)) ab(mod(m)).

如果没有特别说明,模数总是正整数。

​ 式中的 𝑏 是 𝑎 对模 𝑚 的剩余,这个概念与余数完全一致。通过限定 𝑏 的范围,相应的有 𝑎 对模 𝑚 的最小非负剩余、绝对最小剩余、最小正剩余。

同余的性质:

• 自反性: a ≡ a (   m o d   m ) a\equiv a (\bmod m) aa(modm)

• 对称性:若 a ≡ b (   m o d   m ) a\equiv b (\bmod m) ab(modm),则 b ≡ a (   m o d   m ) b\equiv a (\bmod m) ba(modm)

• 传递性:若 a ≡ b (   m o d   m ) a\equiv b (\bmod m) ab(modm), b ≡ c (   m o d   m ) b\equiv c (\bmod m) bc(modm),则 a ≡ c (   m o d   m ) a\equiv c (\bmod m) ac(modm)

• 线性运算:若 𝑎, 𝑏, 𝑐, 𝑑 ∈ Z, 𝑚 ∈ N∗ , a ≡ b (   m o d   m ) a\equiv b (\bmod m) ab(modm), c ≡ d (   m o d   m ) c\equiv d (\bmod m) cd(modm) 则有:

a ± c ≡ b ± d (   m o d   m ) a\pm c \equiv b \pm d (\bmod m) a±cb±d(modm)

a × c ≡ b × d (   m o d   m ) a\times c\equiv b \times d (\bmod m) a×cb×d(modm)

• 若 𝑎, 𝑏 ∈ Z, 𝑘, 𝑚 ∈ N∗ , a ≡ b (   m o d   m ) a\equiv b(\bmod m) ab(modm), 则 a k ≡ b k (   m o d   m k ) ak\equiv bk(\bmod mk) akbk(modmk)

• 若 𝑎, 𝑏 ∈ Z, 𝑑, 𝑚 ∈ N∗ , 𝑑 ∣ 𝑎, 𝑑 ∣ 𝑏, 𝑑 ∣ 𝑚,则当 a ≡ b (   m o d   m ) a\equiv b(\bmod m) ab(modm)成立时,有 a d ≡ b d (   m o d   m d ) \frac{a}{d}\equiv \frac{b}{d}(\bmod \frac{m}{d}) dadb(moddm)

• 若 𝑎, 𝑏 ∈ Z, 𝑑, 𝑚 ∈ N∗ , 𝑑 ∣ 𝑚,则当 a ≡ b (   m o d   m ) a\equiv b(\bmod m) ab(modm) 成立时,有 a ≡ b (   m o d   d ) a\equiv b(\bmod d) ab(modd)

• 若 𝑎, 𝑏 ∈ Z, 𝑑, 𝑚 ∈ N∗,则当 a ≡ b (   m o d   m ) a\equiv b(\bmod m) ab(modm)成立时,有 g c d ( a , m ) = g c d ( b , m ) gcd(a, m) = gcd(b, m) gcd(a,m)=gcd(b,m)。若 𝑑 能整除 𝑚 及 𝑎, 𝑏 中的一个,则 𝑑 必定能整除 𝑎, 𝑏 中的另一个。

还有性质是乘法逆元

C/C++ 的整数除法和取模运算

​ 在 C/C++ 中,整数除法和取模运算,与数学上习惯的取模和除法不一致。

​ 对于所有标准版本的 C/C++,规定在整数除法中:

  1. 当除数为 0 时,行为未定义;

  2. 否则 ( a ∕ b ) ∗ b + a ( a ∕ b ) * b + a % b (ab)b+a 的运算结果与 a 相等。

也就是说,取模运算的符号取决于除法如何取整;而除法如何取整,这是实现定义的(由编译器决定)。

C99 C++11 标准版本起,规定商向零取整(舍弃小数部分);取模的符号即与被除数相同。从此以下运算结果保证为真:

5 % 3 == 2;

5 % -3 == 2;

-5 % 3 == -2;

-5 % -3 == -2.

数论函数

数论函数指定义域为正整数的函数。数论函数也可以视作一个数列。

积性函数

定义

​ 若函数 f ( n ) f(n) f(n)满足 f ( 1 ) = 1 f(1)=1 f(1)=1 且 ∀𝑥, 𝑦 ∈ N∗, g c d ( x , y ) = 1 gcd(x, y)=1 gcd(x,y)=1 都有 f ( x y ) = f ( x ) f ( y ) f(xy)=f(x)f(y) f(xy)=f(x)f(y),则 f ( n ) f(n) f(n)为积性函数。

​ 若函数 f ( n ) f(n) f(n)满足 f ( 1 ) = 1 f(1)=1 f(1)=1且 ∀𝑥, 𝑦 ∈ N∗ 都有 f ( x y ) = f ( x ) f ( y ) f(xy)=f(x)f(y) f(xy)=f(x)f(y),则 f ( n ) f(n) f(n)为完全积性函数。

性质

若 𝑓(𝑥) 和 𝑔(𝑥) 均为积性函数,则以下函数也为积性函数:
h ( x ) = f ( x p ) h ( x ) = f p ( x ) h ( x ) = f ( x ) g ( x ) h ( x ) = ∑ d ∣ x f ( d ) g ( x d ) h(x)=f(x^p) \\ h(x)=f^p(x) \\ h(x)=f(x)g(x) \\ h(x)=\sum_{d|x}f(d)g(\frac{x}{d}) h(x)=f(xp)h(x)=fp(x)h(x)=f(x)g(x)h(x)=dxf(d)g(dx)
x = ∏ p i k i x=\prod p_i^{k_i} x=piki

F ( x ) F(x) F(x)为积性函数,则有 F ( x ) = ∏ F ( p i k i ) F(x)=\prod F(p_i^{k_i}) F(x)=F(piki)

F ( x ) F(x) F(x)为完全积性函数,则有 F ( x ) = ∏ F ( p i ) k i F(x)=\prod F(p_i)^{k_i} F(x)=F(pi)ki

例子

• 单位函数: ϵ ( n ) = [ n = 1 ] \epsilon (n)=[n=1] ϵ(n)=[n=1]。(完全积性)

• 恒等函数: i d k ( n ) = n k id_k(n)=n^k idk(n)=nk i d 1 ( n ) id_1(n) id1(n)通常简记作 d i ( n ) di(n) di(n)。(完全积性)

• 常数函数: 1 ( n ) = 1 1(n)=1 1(n)=1。(完全积性)

• 除数函数: σ k ( n ) = ∑ d ∣ n d k \sigma_k(n)=\sum_{d|n}{d^k} σk(n)=dndk σ 0 ( n ) \sigma_0(n) σ0(n)通常简记作 d ( n ) d(n) d(n) τ ( n ) \tau(n) τ(n) σ 1 ( n ) \sigma_1(n) σ1(n)通常简记作 σ ( n ) \sigma (n) σ(n)

• 欧拉函数: φ ( n ) = ∑ i = 1 n [ g c d ( i , n ) = = 1 ] \varphi(n)=\sum_{i=1}^{n}{[gcd(i, n)==1]} φ(n)=i=1n[gcd(i,n)==1]

• 莫比乌斯函数: μ ( n ) = { 1 n = 1 0 ∃ d > 1 , d 2 ∣ n , ( − 1 ) w ( n ) o t h e r w i s e \mu(n)= \begin{cases} 1 &n=1\\ 0 &\exists d>1,d^{2}|n,\\ (-1)^{w(n)} &otherwise\end{cases} μ(n)= 10(1)w(n)n=1d>1,d2n,otherwise 其中 𝜔(𝑛) 表示 𝑛 的本质不同质因子个数,它是一个加性函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡沛玮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值