数论基础
本文对于数论的开头部分做一个简介。
整除
定义
 设 𝑎,𝑏 ∈𝐙 ,𝑎 ≠0
,𝑎 ≠0 。如果 ∃𝑞 ∈𝐙
。如果 ∃𝑞 ∈𝐙 ,使得 𝑏 =𝑎𝑞
,使得 𝑏 =𝑎𝑞 ,那么就说 𝑏
,那么就说 𝑏 可被 𝑎
 可被 𝑎 整除,记作 𝑎 ∣𝑏
 整除,记作 𝑎 ∣𝑏 ;𝑏
;𝑏 不被 𝑎
 不被 𝑎 整除记作 𝑎 ∤𝑏
 整除记作 𝑎 ∤𝑏 。
。
整除的性质:
- 𝑎 ∣𝑏  ⟺  −𝑎 ∣𝑏  ⟺ 𝑎 ∣ −𝑏  ⟺ |𝑎| ∣|𝑏| 
- 𝑎 ∣𝑏 ∧𝑏 ∣𝑐  ⟹ 𝑎 ∣𝑐 
- 𝑎 ∣𝑏 ∧𝑎 ∣𝑐  ⟺ ∀𝑥,𝑦 ∈𝐙,𝑎 ∣(𝑥𝑏 +𝑦𝑐) 
- 𝑎 ∣𝑏 ∧𝑏 ∣𝑎  ⟹ 𝑏 = ±𝑎 
- 设 𝑚 ≠0 ,那么 𝑎 ∣𝑏  ⟺ 𝑚𝑎 ∣𝑚𝑏 ,那么 𝑎 ∣𝑏  ⟺ 𝑚𝑎 ∣𝑚𝑏 。 。
- 设 𝑏 ≠0 ,那么 𝑎 ∣𝑏  ⟹ |𝑎| ≤|𝑏| ,那么 𝑎 ∣𝑏  ⟹ |𝑎| ≤|𝑏| 。 。
- 设 𝑎 ≠0,𝑏 =𝑞𝑎 +𝑐 ,那么 𝑎 ∣𝑏  ⟺ 𝑎 ∣𝑐 ,那么 𝑎 ∣𝑏  ⟺ 𝑎 ∣𝑐 。 。
约数
定义
 若 𝑎 ∣𝑏 ,则称 𝑏
,则称 𝑏 是 𝑎
 是 𝑎 的 倍数,𝑎
 的 倍数,𝑎 是 𝑏
 是 𝑏 的 约数。
 的 约数。
0 是所有非 0
 是所有非 0 整数的倍数。对于整数 𝑏 ≠0
 整数的倍数。对于整数 𝑏 ≠0 ,𝑏
,𝑏 的约数只有有限个。
 的约数只有有限个。
平凡约数(平凡因数):对于整数 𝑏 ≠0 ,±1
,±1 、±𝑏
、±𝑏 是 𝑏
 是 𝑏 的平凡约数。当 𝑏 = ±1
 的平凡约数。当 𝑏 = ±1 时,𝑏
 时,𝑏 只有两个平凡约数。
 只有两个平凡约数。
对于整数 𝑏 ≠0 ,𝑏
,𝑏 的其他约数称为真约数(真因数、非平凡约数、非平凡因数)。
 的其他约数称为真约数(真因数、非平凡约数、非平凡因数)。
约数的性质:
- 设整数 𝑏 ≠0 。当 𝑑 。当 𝑑 遍历 𝑏 遍历 𝑏 的全体约数的时候,𝑏𝑑 的全体约数的时候,𝑏𝑑 也遍历 𝑏 也遍历 𝑏 的全体约数。 的全体约数。
- 设整数 𝑏 >0 ,则当 𝑑 ,则当 𝑑 遍历 𝑏 遍历 𝑏 的全体正约数的时候,𝑏𝑑 的全体正约数的时候,𝑏𝑑 也遍历 𝑏 也遍历 𝑏 的全体正约数。 的全体正约数。
在具体问题中,如果没有特别说明,约数总是指正约数。
带余数除法
余数
 设 𝑎,𝑏 为两个给定的整数,𝑎 ≠0
 为两个给定的整数,𝑎 ≠0 。设 𝑑
。设 𝑑 是一个给定的整数。那么,一定存在唯一的一对整数 𝑞
 是一个给定的整数。那么,一定存在唯一的一对整数 𝑞 和 𝑟
 和 𝑟 ,满足 𝑏 =𝑞𝑎 +𝑟,𝑑 ≤𝑟 <|𝑎| +𝑑
,满足 𝑏 =𝑞𝑎 +𝑟,𝑑 ≤𝑟 <|𝑎| +𝑑 。
。
无论整数 𝑑 取何值,𝑟
 取何值,𝑟 统称为余数。𝑎 ∣𝑏
 统称为余数。𝑎 ∣𝑏 等价于 𝑎 ∣𝑟
 等价于 𝑎 ∣𝑟 。
。
一般情况下,𝑑 取 0
 取 0 ,此时等式 𝑏 =𝑞𝑎 +𝑟,0 ≤𝑟 <|𝑎|
,此时等式 𝑏 =𝑞𝑎 +𝑟,0 ≤𝑟 <|𝑎| 称为带余数除法(带余除法)。这里的余数 𝑟
 称为带余数除法(带余除法)。这里的余数 𝑟 称为最小非负余数。
 称为最小非负余数。
余数往往还有两种常见取法:
- 绝对最小余数:𝑑 取 𝑎 取 𝑎 的绝对值的一半的相反数。即 𝑏 =𝑞𝑎 +𝑟, −|𝑎|2 ≤𝑟 <|𝑎| −|𝑎|2 的绝对值的一半的相反数。即 𝑏 =𝑞𝑎 +𝑟, −|𝑎|2 ≤𝑟 <|𝑎| −|𝑎|2 。 。
- 最小正余数:𝑑 取 1 取 1 。即 𝑏 =𝑞𝑎 +𝑟,1 ≤𝑟 <|𝑎| +1 。即 𝑏 =𝑞𝑎 +𝑟,1 ≤𝑟 <|𝑎| +1 。 。
带余数除法的余数只有最小非负余数。如果没有特别说明,余数总是指最小非负余数。
余数的性质:
- 任一整数被正整数 𝑎 除后,余数一定是且仅是 0 除后,余数一定是且仅是 0 到 (𝑎 −1) 到 (𝑎 −1) 这 𝑎 这 𝑎 个数中的一个。 个数中的一个。
- 相邻的 𝑎 个整数被正整数 𝑎 个整数被正整数 𝑎 除后,恰好取到上述 𝑎 除后,恰好取到上述 𝑎 个余数。特别地,一定有且仅有一个数被 𝑎 个余数。特别地,一定有且仅有一个数被 𝑎 整除。 整除。
最大公约数与最小公倍数
关于公约数、公倍数、最大公约数与最小公倍数,四个名词的定义,见 最大公约数。
Warning
 一些作者认为 0 和 0
 和 0 的最大公约数无定义,其余作者一般将其视为 0
 的最大公约数无定义,其余作者一般将其视为 0 。C++ STL 的实现中采用后者,即认为 0
。C++ STL 的实现中采用后者,即认为 0 和 0
 和 0 的最大公约数为 0
 的最大公约数为 0 。
。
最大公约数有如下性质:
- (𝑎1,…,𝑎𝑛) =(|𝑎1|,…,|𝑎𝑛|) ; ;
- (𝑎,𝑏) =(𝑏,𝑎) ; ;
- 若 𝑎 ≠0 ,则 (𝑎,0) =(𝑎,𝑎) =|𝑎| ,则 (𝑎,0) =(𝑎,𝑎) =|𝑎| ; ;
- (𝑏𝑞 +𝑟,𝑏) =(𝑟,𝑏) ; ;
- (𝑎1,…,𝑎𝑛) =((𝑎1,𝑎2),𝑎3,…,𝑎𝑛) 。进而 ∀1 <𝑘 <𝑛 −1, (𝑎1,…,𝑎𝑛) =((𝑎1,…,𝑎𝑘),(𝑎𝑘+1,…,𝑎𝑛)) 。进而 ∀1 <𝑘 <𝑛 −1, (𝑎1,…,𝑎𝑛) =((𝑎1,…,𝑎𝑘),(𝑎𝑘+1,…,𝑎𝑛)) ; ;
- 对不全为 0 的整数 𝑎1,…,𝑎𝑛 的整数 𝑎1,…,𝑎𝑛 和非零整数 𝑚 和非零整数 𝑚 ,(𝑚𝑎1,…,𝑚𝑎𝑛) =|𝑚|(𝑎1,…,𝑎𝑛) ,(𝑚𝑎1,…,𝑚𝑎𝑛) =|𝑚|(𝑎1,…,𝑎𝑛) ; ;
- 对不全为 0 的整数 𝑎1,…,𝑎𝑛 的整数 𝑎1,…,𝑎𝑛 ,若 (𝑎1,…,𝑎𝑛) =𝑑 ,若 (𝑎1,…,𝑎𝑛) =𝑑 ,则 (𝑎1/𝑑,…,𝑎𝑛/𝑑) =1 ,则 (𝑎1/𝑑,…,𝑎𝑛/𝑑) =1 ; ;
- (𝑎𝑛,𝑏𝑛) =(𝑎,𝑏)𝑛 。 。
最大公约数还有如下与互素相关的性质:
- 若 𝑏|𝑎𝑐 且 (𝑎,𝑏) =1 且 (𝑎,𝑏) =1 ,则 𝑏 ∣𝑐 ,则 𝑏 ∣𝑐 ; ;
- 若 𝑏|𝑐 、𝑎|𝑐 、𝑎|𝑐 且 (𝑎,𝑏) =1 且 (𝑎,𝑏) =1 ,则 𝑎𝑏 ∣𝑐 ,则 𝑎𝑏 ∣𝑐 ; ;
- 若 (𝑎,𝑏) =1 ,则 (𝑎,𝑏𝑐) =(𝑎,𝑐) ,则 (𝑎,𝑏𝑐) =(𝑎,𝑐) ; ;
- 若 (𝑎𝑖,𝑏𝑗) =1, ∀1 ≤𝑖 ≤𝑛,1 ≤𝑗 ≤𝑚 ,则 (∏𝑖𝑎𝑖,∏𝑗𝑏𝑗) =1 ,则 (∏𝑖𝑎𝑖,∏𝑗𝑏𝑗) =1 。特别地,若 (𝑎,𝑏) =1 。特别地,若 (𝑎,𝑏) =1 ,则 (𝑎𝑛,𝑏𝑚) =1 ,则 (𝑎𝑛,𝑏𝑚) =1 ; ;
- 对整数 𝑎1,…,𝑎𝑛 ,若 ∃𝑣 ∈𝐙, ∏𝑖𝑎𝑖 =𝑣𝑚 ,若 ∃𝑣 ∈𝐙, ∏𝑖𝑎𝑖 =𝑣𝑚 ,且 (𝑎𝑖,𝑎𝑗) =1, ∀𝑖 ≠𝑗 ,且 (𝑎𝑖,𝑎𝑗) =1, ∀𝑖 ≠𝑗 ,则 ∀1 ≤𝑖 ≤𝑛, 𝑚√𝑎𝑖 ∈𝐙 ,则 ∀1 ≤𝑖 ≤𝑛, 𝑚√𝑎𝑖 ∈𝐙![\forall 1\leq i\leq n,~\sqrt[m]{a_i}\in\mathbf{Z}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。 。
最小公倍数有如下性质:
- [𝑎1,…,𝑎𝑛] =[|𝑎1|,…,|𝑎𝑛|]![[a_1,\dots,a_n]=[|a_1|,\dots,|a_n|]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- [𝑎,𝑏] =[𝑏,𝑎]![[a,b]=[b,a]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- 若 𝑎 ≠0 ,则 [𝑎,1] =[𝑎,𝑎] =|𝑎| ,则 [𝑎,1] =[𝑎,𝑎] =|𝑎|![[a,1]=[a,a]=|a|](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- 若 𝑎 ∣𝑏 ,则 [𝑎,𝑏] =|𝑏| ,则 [𝑎,𝑏] =|𝑏|![[a,b]=|b|](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- [𝑎1,…,𝑎𝑛] =[[𝑎1,𝑎2],𝑎3,…,𝑎𝑛]![[a_1,\dots,a_n]=[[a_1,a_2],a_3,\dots,a_n]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。进而 ∀1 <𝑘 <𝑛 −1, [𝑎1,…,𝑎𝑛] =[[𝑎1,…,𝑎𝑘],[𝑎𝑘+1,…,𝑎𝑛]] 。进而 ∀1 <𝑘 <𝑛 −1, [𝑎1,…,𝑎𝑛] =[[𝑎1,…,𝑎𝑘],[𝑎𝑘+1,…,𝑎𝑛]]![\forall 1<k<n-1,~[a_1,\dots,a_n]=[[a_1,\dots,a_k],[a_{k+1},\dots,a_n]]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- 若 𝑎𝑖 ∣𝑚, ∀1 ≤𝑖 ≤𝑛 ,则 [𝑎1,…,𝑎𝑛] ∣𝑚 ,则 [𝑎1,…,𝑎𝑛] ∣𝑚![[a_1,\dots,a_n]\mid m](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- [𝑚𝑎1,…,𝑚𝑎𝑛] =|𝑚|[𝑎1,…,𝑎𝑛]![[ma_1,\dots,ma_n]=|m|[a_1,\dots,a_n]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- [𝑎,𝑏,𝑐][𝑎𝑏,𝑏𝑐,𝑐𝑎] =[𝑎,𝑏][𝑏,𝑐][𝑐,𝑎]![[a,b,c][ab,bc,ca]=[a,b][b,c][c,a]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- [𝑎𝑛,𝑏𝑛] =[𝑎,𝑏]𝑛![[a^n,b^n]=[a,b]^n](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。 。
最大公约数和最小公倍数可以组合出很多奇妙的等式,如:
- (𝑎,𝑏)[𝑎,𝑏] =|𝑎𝑏|![(a,b)[a,b]=|ab|](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- (𝑎𝑏,𝑏𝑐,𝑐𝑎)[𝑎,𝑏,𝑐] =|𝑎𝑏𝑐|![(ab,bc,ca)[a,b,c]=|abc|](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) ; ;
- (𝑎,𝑏,𝑐)2(𝑎,𝑏)(𝑏,𝑐)(𝑎,𝑐) =[𝑎,𝑏,𝑐]2[𝑎,𝑏][𝑏,𝑐][𝑎,𝑐]![\dfrac{(a,b,c)^2}{(a,b)(b,c)(a,c)}=\dfrac{[a,b,c]^2}{[a,b][b,c][a,c]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。 。
这些性质均可通过定义或 唯一分解定理 证明,其中使用唯一分解定理的证明更容易理解。
互素
定义
 若 (𝑎1,𝑎2) =1 ,则称 𝑎1
,则称 𝑎1 和 𝑎2
 和 𝑎2 互素(既约)。
 互素(既约)。
 若 (𝑎1,…,𝑎𝑘) =1 ,则称 𝑎1,…,𝑎𝑘
,则称 𝑎1,…,𝑎𝑘 互素(既约)。
 互素(既约)。
多个整数互素,不一定两两互素。例如 6 、10
、10 和 15
 和 15 互素,但是任意两个都不互素。
 互素,但是任意两个都不互素。
互素的性质与最大公约数理论:裴蜀定理(Bézout's identity)。见 裴蜀定理。
辗转相除法
辗转相除法是一种算法,也称 Euclid 算法。见 最大公约数。
素数与合数
关于素数的算法见 素数。
定义
 设整数 𝑝 ≠0, ±1 。如果 𝑝
。如果 𝑝 除了平凡约数外没有其他约数,那么称 𝑝
 除了平凡约数外没有其他约数,那么称 𝑝 为 素数(不可约数)。
 为 素数(不可约数)。
 若整数 𝑎 ≠0, ±1 且 𝑎
 且 𝑎 不是素数,则称 𝑎
 不是素数,则称 𝑎 为 合数。
 为 合数。
𝑝 和 −𝑝
 和 −𝑝 总是同为素数或者同为合数。如果没有特别说明,素数总是指正的素数。
 总是同为素数或者同为合数。如果没有特别说明,素数总是指正的素数。
整数的因数是素数,则该素数称为该整数的素因数(素约数)。
素数与合数的简单性质:
- 大于 1 的整数 𝑎 的整数 𝑎 是合数,等价于 𝑎 是合数,等价于 𝑎 可以表示为整数 𝑑 可以表示为整数 𝑑 和 𝑒 和 𝑒 (1 <𝑑,𝑒 <𝑎 (1 <𝑑,𝑒 <𝑎 )的乘积。 )的乘积。
- 如果素数 𝑝 有大于 1 有大于 1 的约数 𝑑 的约数 𝑑 ,那么 𝑑 =𝑝 ,那么 𝑑 =𝑝 。 。
- 大于 1 的整数 𝑎 的整数 𝑎 一定可以表示为素数的乘积。 一定可以表示为素数的乘积。
- 对于合数 𝑎 ,一定存在素数 𝑝 ≤√𝑎 ,一定存在素数 𝑝 ≤√𝑎 使得 𝑝 ∣𝑎 使得 𝑝 ∣𝑎 。 。
- 素数有无穷多个。
- 所有大于 3 的素数都可以表示为 6𝑛 ±1 的素数都可以表示为 6𝑛 ±1 的形式。 的形式。
算术基本定理
算术基本引理
 设 𝑝 是素数,𝑝 ∣𝑎1𝑎2
 是素数,𝑝 ∣𝑎1𝑎2 ,那么 𝑝 ∣𝑎1
,那么 𝑝 ∣𝑎1 和 𝑝 ∣𝑎2
 和 𝑝 ∣𝑎2 至少有一个成立。
 至少有一个成立。
算术基本引理的逆命题稍加修改也可以得到素数的另一种定义。
素数的另一种定义
 对整数 𝑝 ≠0, ±1 ,若对任意满足 𝑝 ∣𝑎1𝑎2
,若对任意满足 𝑝 ∣𝑎1𝑎2 的整数 𝑎1,𝑎2
 的整数 𝑎1,𝑎2 均有 𝑝 ∣𝑎1
 均有 𝑝 ∣𝑎1 或 𝑝 ∣𝑎2
 或 𝑝 ∣𝑎2 成立,则称 𝑝
 成立,则称 𝑝 是素数。
 是素数。
Tip
 这个定义的动机可以从 素理想 中找到。
算术基本定理(唯一分解定理)
 设正整数 𝑎 ,那么必有表示:
,那么必有表示:
 𝑎=𝑝1𝑝2⋯𝑝𝑠 
 其中 𝑝𝑗(1 ≤𝑗 ≤𝑠) 是素数。并且在不计次序的意义下,该表示唯一。
 是素数。并且在不计次序的意义下,该表示唯一。
标准素因数分解式
 将上述表示中,相同的素数合并,可得:
 𝑎=𝑝1𝛼1𝑝2𝛼2⋯𝑝𝑠𝛼𝑠,𝑝1<𝑝2<⋯<𝑝𝑠 
 称为正整数 𝑎 的标准素因数分解式。
 的标准素因数分解式。
算术基本定理和算术基本引理,两个定理是等价的。
同余
定义
 设整数 𝑚 ≠0 。若 𝑚 ∣(𝑎 −𝑏)
。若 𝑚 ∣(𝑎 −𝑏) ,称 𝑚
,称 𝑚 为 模数(模),𝑎
 为 模数(模),𝑎 同余于 𝑏
 同余于 𝑏 模 𝑚
 模 𝑚 ,𝑏
,𝑏 是 𝑎
 是 𝑎 对模 𝑚
 对模 𝑚 的 剩余。记作 𝑎 ≡𝑏(mod𝑚)
 的 剩余。记作 𝑎 ≡𝑏(mod𝑚) 。
。
 否则,𝑎 不同余于 𝑏
 不同余于 𝑏 模 𝑚
 模 𝑚 ,𝑏
,𝑏 不是 𝑎
 不是 𝑎 对模 𝑚
 对模 𝑚 的剩余。记作 𝑎 ≢𝑏(mod𝑚)
 的剩余。记作 𝑎 ≢𝑏(mod𝑚) 。
。
 这样的等式,称为模 𝑚 的同余式,简称 同余式。
 的同余式,简称 同余式。
根据整除的性质,上述同余式也等价于 𝑎 ≡𝑏(mod( −𝑚)) 。
。
后文中,如果没有特别说明,模数总是 正整数。
式中的 𝑏 是 𝑎
 是 𝑎 对模 𝑚
 对模 𝑚 的剩余,这个概念与余数完全一致。通过限定 𝑏
 的剩余,这个概念与余数完全一致。通过限定 𝑏 的范围,相应的有 𝑎
 的范围,相应的有 𝑎 对模 𝑚
 对模 𝑚 的最小非负剩余、绝对最小剩余、最小正剩余。
 的最小非负剩余、绝对最小剩余、最小正剩余。
同余的性质:
- 同余是 等价关系,即同余具有- 自反性:𝑎 ≡𝑎(mod𝑚) 。 。
- 对称性:若 𝑎 ≡𝑏(mod𝑚) ,则 𝑏 ≡𝑎(mod𝑚) ,则 𝑏 ≡𝑎(mod𝑚) 。 。
- 传递性:若 𝑎 ≡𝑏(mod𝑚),𝑏 ≡𝑐(mod𝑚) ,则 𝑎 ≡𝑐(mod𝑚) ,则 𝑎 ≡𝑐(mod𝑚) 。 。
 
- 线性运算:若 𝑎,𝑏,𝑐,𝑑 ∈𝐙,𝑚 ∈𝐍∗,𝑎 ≡𝑏(mod𝑚),𝑐 ≡𝑑(mod𝑚) 则有: 则有:- 𝑎 ±𝑐 ≡𝑏 ±𝑑(mod𝑚) 。 。
- 𝑎 ×𝑐 ≡𝑏 ×𝑑(mod𝑚) 。 。
 
- 设 𝑓(𝑥) =∑𝑛𝑖=0𝑎𝑖𝑥𝑖 和 𝑔(𝑥) =∑𝑛𝑖=0𝑏𝑖𝑥𝑖 和 𝑔(𝑥) =∑𝑛𝑖=0𝑏𝑖𝑥𝑖 是两个整系数多项式,𝑚 ∈𝐍∗ 是两个整系数多项式,𝑚 ∈𝐍∗ ,且 𝑎𝑖 ≡𝑏𝑖(mod𝑚), 0 ≤𝑖 ≤𝑛 ,且 𝑎𝑖 ≡𝑏𝑖(mod𝑚), 0 ≤𝑖 ≤𝑛 ,则对任意整数 𝑥 ,则对任意整数 𝑥 均有 𝑓(𝑥) ≡𝑔(𝑥)(mod𝑚) 均有 𝑓(𝑥) ≡𝑔(𝑥)(mod𝑚) 。进而若 𝑠 ≡𝑡(mod𝑚) 。进而若 𝑠 ≡𝑡(mod𝑚) ,则 𝑓(𝑠) ≡𝑔(𝑡)(mod𝑚) ,则 𝑓(𝑠) ≡𝑔(𝑡)(mod𝑚) 。 。
- 若 𝑎,𝑏 ∈𝐙,𝑘,𝑚 ∈𝐍∗,𝑎 ≡𝑏(mod𝑚) , 则 𝑎𝑘 ≡𝑏𝑘(mod𝑚𝑘) , 则 𝑎𝑘 ≡𝑏𝑘(mod𝑚𝑘) 。 。
- 若 𝑎,𝑏 ∈𝐙,𝑑,𝑚 ∈𝐍∗,𝑑 ∣𝑎,𝑑 ∣𝑏,𝑑 ∣𝑚 ,则当 𝑎 ≡𝑏(mod𝑚) ,则当 𝑎 ≡𝑏(mod𝑚) 成立时,有 𝑎𝑑 ≡𝑏𝑑(mod𝑚𝑑) 成立时,有 𝑎𝑑 ≡𝑏𝑑(mod𝑚𝑑) 。 。
- 若 𝑎,𝑏 ∈𝐙,𝑑,𝑚 ∈𝐍∗,𝑑 ∣𝑚 ,则当 𝑎 ≡𝑏(mod𝑚) ,则当 𝑎 ≡𝑏(mod𝑚) 成立时,有 𝑎 ≡𝑏(mod𝑑) 成立时,有 𝑎 ≡𝑏(mod𝑑) 。 。
- 若 𝑎,𝑏 ∈𝐙,𝑑,𝑚 ∈𝐍∗ ,则当 𝑎 ≡𝑏(mod𝑚) ,则当 𝑎 ≡𝑏(mod𝑚) 成立时,有 (𝑎,𝑚) =(𝑏,𝑚) 成立时,有 (𝑎,𝑚) =(𝑏,𝑚) 。若 𝑑 。若 𝑑 能整除 𝑚 能整除 𝑚 及 𝑎,𝑏 及 𝑎,𝑏 中的一个,则 𝑑 中的一个,则 𝑑 必定能整除 𝑎,𝑏 必定能整除 𝑎,𝑏 中的另一个。 中的另一个。
还有性质是乘法逆元。见 乘法逆元。
C/C++ 的整数除法和取模运算
在 C/C++ 中,整数除法和取模运算,与数学上习惯的取模和除法不一致。
对于所有标准版本的 C/C++,规定在整数除法中:
- 当除数为 0 时,行为未定义;
- 否则 (a / b) * b + a % b的运算结果与a相等。
也就是说,取模运算的符号取决于除法如何取整;而除法如何取整,这是实现定义的(由编译器决定)。
从 C99和 C++11标准版本起,规定 商向零取整(舍弃小数部分);取模的符号即与被除数相同。从此以下运算结果保证为真:
|  | 5 % 3 == 2;
5 % -3 == 2;
-5 % 3 == -2;
-5 % -3 == -2;
 | 
快速乘
在素性测试与质因数分解中,经常会遇到模数在 long long 范围内的乘法取模运算。为了避免运算中的整型溢出问题,本节介绍一种可以处理模数在 long long 范围内,不需要使用 __int128 且复杂度为 𝑂(1) 的「快速乘」。
 的「快速乘」。
我们发现:
𝑎×𝑏mod𝑚=𝑎×𝑏−⌊𝑎𝑏𝑚⌋×𝑚
我们巧妙运用 unsigned long long 的自然溢出:
𝑎×𝑏mod𝑚=𝑎×𝑏−⌊𝑎𝑏𝑚⌋×𝑚=(𝑎×𝑏−⌊𝑎𝑏𝑚⌋×𝑚)mod264
于是在算出 ⌊𝑎𝑏𝑚⌋ 后,两边的乘法和中间的减法部分都可以使用
 后,两边的乘法和中间的减法部分都可以使用 unsigned long long 直接计算,现在我们只需要解决如何计算 ⌊𝑎𝑏𝑚⌋ 。
。
我们考虑先使用 long double 算出 𝑎𝑚 再乘上 𝑏
 再乘上 𝑏 。
。
既然使用了 long double,就无疑会有精度误差。极端情况就是第一个有效数字(二进制下)在小数点后一位。在 64 位系统中,long double 通常表示为 80 位扩展精度浮点数(即符号为 1
 位扩展精度浮点数(即符号为 1 位,指数为 15
 位,指数为 15 位,尾数为 64
 位,尾数为 64 位),所以
 位),所以 long double 最多能精确表示的有效位数为 64 。所以 𝑎𝑚
。所以 𝑎𝑚 最差从第 65
 最差从第 65 位开始出错,误差范围为 (−2−64,2−64)
 位开始出错,误差范围为 (−2−64,2−64) 。乘上 𝑏
。乘上 𝑏 这个 64
 这个 64 位整数,误差范围为 ( −0.5,0.5)
 位整数,误差范围为 ( −0.5,0.5) ,再加上 0.5
,再加上 0.5 误差范围为 (0,1)
 误差范围为 (0,1) ,取整后误差范围位 {0,1}
,取整后误差范围位 {0,1} 。于是乘上 −𝑚
。于是乘上 −𝑚 后,误差范围变成 {0, −𝑚}
 后,误差范围变成 {0, −𝑚} ,我们需要判断这两种情况。
,我们需要判断这两种情况。
因为 𝑚 在
 在 long long 范围内,所以如果计算结果 𝑟 在 [0,𝑚)
 在 [0,𝑚) 时,直接返回 𝑟
 时,直接返回 𝑟 ,否则返回 𝑟 +𝑚
,否则返回 𝑟 +𝑚 ,当然你也可以直接返回 (𝑟 +𝑚)mod𝑚
,当然你也可以直接返回 (𝑟 +𝑚)mod𝑚 。
。
代码实现如下:
|  | long long binmul(long long a, long long b, long long m) {
  unsigned long long c =
      (unsigned long long)a * b -
      (unsigned long long)((long double)a / m * b + 0.5L) * m;
  if (c < m) return c;
  return c + m;
}
 | 
如今,绝大多数测评系统所配备的 C/C++ 编译器已支持 __int128 类型,因此也可以利用 Barrett Reduction 进行快速乘。之所以不直接将乘数类型提升至 __int128 后取模计算是因为此方法仍然可以节省一次时间可观的 __int128 类型取模。
同余类与剩余系
为方便讨论,对集合 𝐴,𝐵 和元素 𝑟
 和元素 𝑟 ,我们引入如下记号:
,我们引入如下记号:
- 𝑟 +𝐴 :={𝑟 +𝑎 :𝑎 ∈𝐴} ; ;
- 𝑟𝐴 :={𝑟𝑎 :𝑎 ∈𝐴} ; ;
- 𝐴 +𝐵 :={𝑎 +𝑏 :𝑎 ∈𝐴,𝑏 ∈𝐵} ; ;
- 𝐴𝐵 :={𝑎𝑏 :𝑎 ∈𝐴,𝑏 ∈𝐵} 。 。
同余类
 对非零整数 𝑚 ,把全体整数分成 |𝑚|
,把全体整数分成 |𝑚| 个两两不交的集合,且同一个集合中的任意两个数模 𝑚
 个两两不交的集合,且同一个集合中的任意两个数模 𝑚 均同余,我们把这 |𝑚|
 均同余,我们把这 |𝑚| 个集合均称为模 𝑚
 个集合均称为模 𝑚 的 同余类 或 剩余类。用 𝑟mod𝑚
 的 同余类 或 剩余类。用 𝑟mod𝑚 表示含有整数 𝑟
 表示含有整数 𝑟 的模 𝑚
 的模 𝑚 的同余类。
 的同余类。
 不难证明对任意非零整数 𝑚 ,上述划分方案一定存在且唯一。
,上述划分方案一定存在且唯一。
由同余类的定义可知:
- 𝑟mod𝑚 ={𝑟 +𝑘𝑚 :𝑘 ∈𝐙} ; ;
- 𝑟mod𝑚 =𝑠mod𝑚  ⟺ 𝑟 ≡𝑠(mod𝑚) ; ;
- 对任意 𝑟,𝑠 ∈𝐙 ,要么 𝑟mod𝑚 =𝑠mod𝑚 ,要么 𝑟mod𝑚 =𝑠mod𝑚 ,要么 (𝑟mod𝑚) ∩(𝑠mod𝑚) =∅ ,要么 (𝑟mod𝑚) ∩(𝑠mod𝑚) =∅ ; ;
- 若 𝑚1 ∣𝑚 ,则对任意整数 𝑟 ,则对任意整数 𝑟 均有 𝑟 +𝑚𝐙 ⊆𝑟 +𝑚1𝐙 均有 𝑟 +𝑚𝐙 ⊆𝑟 +𝑚1𝐙 。 。
注意到同余是等价关系,所以同余类即为同余关系的等价类。
我们把模 𝑚 的同余类全体构成的集合记为 𝐙𝑚
 的同余类全体构成的集合记为 𝐙𝑚 ,即
,即
𝐙𝑚:={𝑟mod𝑚:0≤𝑟<𝑚}
不难发现:
- 对任意整数 𝑎 ,𝑎 +𝐙𝑚 =𝐙𝑚 ,𝑎 +𝐙𝑚 =𝐙𝑚 ; ;
- 对任意与 𝑚 互质的整数 𝑏 互质的整数 𝑏 ,𝑏𝐙𝑚 =𝐙𝑚 ,𝑏𝐙𝑚 =𝐙𝑚 。 。
由 商群 的定义可知 𝐙𝑚 =𝐙/𝑚𝐙 ,所以有时我们也会用 𝐙/𝑚𝐙
,所以有时我们也会用 𝐙/𝑚𝐙 表示 𝐙𝑚
 表示 𝐙𝑚 。
。
由 抽屉原理 可知:
- 任取 𝑚 +1 个整数,必有两个整数模 𝑚 个整数,必有两个整数模 𝑚 同余。 同余。
- 存在 𝑚 个两两模 𝑚 个两两模 𝑚 不同余的整数。 不同余的整数。
由此我们给出完全剩余系的定义:
(完全)剩余系
 对 𝑚 个整数 𝑎1,𝑎2,…,𝑎𝑚
 个整数 𝑎1,𝑎2,…,𝑎𝑚 ,若对任意的数 𝑥
,若对任意的数 𝑥 ,有且仅有一个数 𝑎𝑖
,有且仅有一个数 𝑎𝑖 使得 𝑥
 使得 𝑥 与 𝑎𝑖
 与 𝑎𝑖 模 𝑚
 模 𝑚 同余,则称这 𝑚
 同余,则称这 𝑚 个整数 𝑎1,𝑎2,…,𝑎𝑚
 个整数 𝑎1,𝑎2,…,𝑎𝑚 为模 𝑚
 为模 𝑚 的 完全剩余系,简称 剩余系。
 的 完全剩余系,简称 剩余系。
我们还可以定义模 𝑚 的:
 的:
- 最小非负(完全)剩余系:0,…,𝑚 −1 ; ;
- 最小正(完全)剩余系:1,…,𝑚 ; ;
- 绝对最小(完全)剩余系:−⌊𝑚/2⌋,…, −⌊ −𝑚/2⌋ −1 ; ;
- 最大非正(完全)剩余系:−𝑚 +1,…,0 ; ;
- 最大负(完全)剩余系:−𝑚,…, −1 。 。
若无特殊说明,一般我们只用最小非负剩余系。
我们注意到如下命题成立:
- 在模 𝑚 的任意一个同余类中,任取两个整数 𝑎1,𝑎2 的任意一个同余类中,任取两个整数 𝑎1,𝑎2 均有 (𝑎1,𝑚) =(𝑎2,𝑚) 均有 (𝑎1,𝑚) =(𝑎2,𝑚) 。 。
考虑同余类 𝑟mod𝑚 ,若 (𝑟,𝑚) =1
,若 (𝑟,𝑚) =1 ,则该同余类的所有元素均与 𝑚
,则该同余类的所有元素均与 𝑚 互质,这说明我们也许可以通过类似方式得知所有与 𝑚
 互质,这说明我们也许可以通过类似方式得知所有与 𝑚 互质的整数构成的集合的结构。
 互质的整数构成的集合的结构。
既约同余类
 对同余类 𝑟mod𝑚 ,若 (𝑟,𝑚) =1
,若 (𝑟,𝑚) =1 ,则称该同余类为 既约同余类 或 既约剩余类。
,则称该同余类为 既约同余类 或 既约剩余类。
 我们把模 𝑚 既约剩余类的个数记作 𝜑(𝑚)
 既约剩余类的个数记作 𝜑(𝑚) ,称其为 Euler 函数。
,称其为 Euler 函数。
我们把模 𝑚 的既约同余类全体构成的集合记为 𝐙∗𝑚
 的既约同余类全体构成的集合记为 𝐙∗𝑚 ,即
,即
𝐙∗𝑚:={𝑟mod𝑚:0≤𝑟<𝑚,(𝑟,𝑚)=1}
Warning
 对于任意的整数 𝑎 和与 𝑚
 和与 𝑚 互质的整数 𝑏
 互质的整数 𝑏 ,𝑏𝐙∗𝑚 =𝐙∗𝑚
,𝑏𝐙∗𝑚 =𝐙∗𝑚 ,但是 𝑎 +𝐙∗𝑚
,但是 𝑎 +𝐙∗𝑚 不一定为 𝐙∗𝑚
 不一定为 𝐙∗𝑚 。这一点与 𝐙𝑚
。这一点与 𝐙𝑚 不同。
 不同。
由 抽屉原理 可知:
- 任取 𝜑(𝑚) +1 个与 𝑚 个与 𝑚 互质的整数,必有两个整数模 𝑚 互质的整数,必有两个整数模 𝑚 同余。 同余。
- 存在 𝜑(𝑚) 个与 𝑚 个与 𝑚 互质且两两模 𝑚 互质且两两模 𝑚 不同余的整数。 不同余的整数。
由此我们给出既约剩余系的定义:
既约剩余系
 对 𝑡 =𝜑(𝑚) 个整数 𝑎1,𝑎2,…,𝑎𝑡
 个整数 𝑎1,𝑎2,…,𝑎𝑡 ,若 (𝑎𝑖,𝑚) =1, ∀1 ≤𝑖 ≤𝑡
,若 (𝑎𝑖,𝑚) =1, ∀1 ≤𝑖 ≤𝑡 ,且对任意满足 (𝑥,𝑚) =1
,且对任意满足 (𝑥,𝑚) =1 的数 𝑥
 的数 𝑥 ,有且仅有一个数 𝑎𝑖
,有且仅有一个数 𝑎𝑖 使得 𝑥
 使得 𝑥 与 𝑎𝑖
 与 𝑎𝑖 模 𝑚
 模 𝑚 同余,则称这 𝑡
 同余,则称这 𝑡 个整数 𝑎1,𝑎2,…,𝑎𝑡
 个整数 𝑎1,𝑎2,…,𝑎𝑡 为模 𝑚
 为模 𝑚 的 既约剩余系、缩剩余系 或 简化剩余系。
 的 既约剩余系、缩剩余系 或 简化剩余系。
类似地,我们也可以定义最小非负既约剩余系等概念。
若无特殊说明,一般我们只用最小非负既约剩余系。
剩余系的复合
对正整数 𝑚 ,我们有如下定理:
,我们有如下定理:
- 若 𝑚 =𝑚1𝑚2, 1 ≤𝑚1,𝑚2 ,令 𝑍𝑚1,𝑍𝑚2 ,令 𝑍𝑚1,𝑍𝑚2 分别为模 𝑚1,𝑚2 分别为模 𝑚1,𝑚2 的 完全 剩余系,则对任意与 𝑚1 的 完全 剩余系,则对任意与 𝑚1 互质的 𝑎 互质的 𝑎 均有: 均有:
 𝑍𝑚=𝑎𝑍𝑚1+𝑚1𝑍𝑚2.  - 为模 𝑚 的 完全 剩余系。进而,若 𝑚 =∏𝑘𝑖=1𝑚𝑖, 1 ≤𝑚1,𝑚2,…,𝑚𝑘 的 完全 剩余系。进而,若 𝑚 =∏𝑘𝑖=1𝑚𝑖, 1 ≤𝑚1,𝑚2,…,𝑚𝑘 ,令 𝑍𝑚1,…,𝑍𝑚𝑘 ,令 𝑍𝑚1,…,𝑍𝑚𝑘 分别为模 𝑚1,…,𝑚𝑘 分别为模 𝑚1,…,𝑚𝑘 的 完全 剩余系,则: 的 完全 剩余系,则:
 𝑍𝑚=𝑘∑𝑖=1(𝑖−1∏𝑗=1𝑚𝑗)𝑍𝑚𝑖.  - 为模 𝑚 的 完全 剩余系。 的 完全 剩余系。
 
证明
 只需证明对任意满足 𝑎𝑥 +𝑚1𝑦 ≡𝑎𝑥′ +𝑚1𝑦′(mod𝑚1𝑚2) 的 𝑥,𝑥′ ∈𝑍𝑚1
 的 𝑥,𝑥′ ∈𝑍𝑚1 ,𝑦,𝑦′ ∈𝑍𝑚2
,𝑦,𝑦′ ∈𝑍𝑚2 ,都有:
,都有:
 𝑎𝑥+𝑚1𝑦=𝑎𝑥′+𝑚1𝑦′. 
 实际上,由 𝑚1 ∣𝑚1𝑚2 ,我们有 𝑎𝑥 +𝑚1𝑦 ≡𝑎𝑥′ +𝑚1𝑦′(mod𝑚1)
,我们有 𝑎𝑥 +𝑚1𝑦 ≡𝑎𝑥′ +𝑚1𝑦′(mod𝑚1) ,进而 𝑎𝑥 ≡𝑎𝑥′(mod𝑚1)
,进而 𝑎𝑥 ≡𝑎𝑥′(mod𝑚1) ,由 (𝑎,𝑚1) =1
,由 (𝑎,𝑚1) =1 可知 𝑥 ≡𝑥′(mod𝑚1)
 可知 𝑥 ≡𝑥′(mod𝑚1) ,进而有 𝑥 =𝑥′
,进而有 𝑥 =𝑥′ 。
。
 进一步,𝑚1𝑦 ≡𝑚1𝑦′(mod𝑚1𝑚2) ,则 𝑦 ≡𝑦′(mod𝑚2)
,则 𝑦 ≡𝑦′(mod𝑚2) ,即 𝑦 =𝑦′
,即 𝑦 =𝑦′ 。
。
 因此,
 𝑎𝑥+𝑚1𝑦=𝑎𝑥′+𝑚1𝑦′.
- 若 𝑚 =𝑚1𝑚2, 1 ≤𝑚1,𝑚2,(𝑚1,𝑚2) =1 ,令 𝑍∗𝑚1,𝑍∗𝑚2 ,令 𝑍∗𝑚1,𝑍∗𝑚2 分别为模 𝑚1,𝑚2 分别为模 𝑚1,𝑚2 的 既约 剩余系,则: 的 既约 剩余系,则:
 𝑍∗𝑚=𝑚2𝑍∗𝑚1+𝑚1𝑍∗𝑚2.  - 为模 𝑚 的 既约 剩余系。 的 既约 剩余系。
 
Tip
 该定理等价于证明 Euler 函数为 积性函数。
证明
 令 𝑍𝑚1,𝑍𝑚2 分别为模 𝑚1,𝑚2
 分别为模 𝑚1,𝑚2 的完全剩余系,我们已经证明了
 的完全剩余系,我们已经证明了
 𝑍𝑚=𝑚2𝑍𝑚1+𝑚1𝑍𝑚2 
 为模 𝑚 的完全剩余系。令 𝑀 ={𝑎 ∈𝑍𝑚 :(𝑎,𝑚) =1} ⊆𝑍𝑚
 的完全剩余系。令 𝑀 ={𝑎 ∈𝑍𝑚 :(𝑎,𝑚) =1} ⊆𝑍𝑚 ,显然 𝑀
,显然 𝑀 为模 𝑚
 为模 𝑚 的既约剩余系,所以我们只需证明 𝑀 =𝑍∗𝑚
 的既约剩余系,所以我们只需证明 𝑀 =𝑍∗𝑚 即可。
 即可。
 显然 𝑍∗𝑚 ⊆𝑍𝑚 。
。
 任取 𝑚2𝑥 +𝑚1𝑦 ∈𝑀 ,其中 𝑥 ∈𝑍𝑚1
,其中 𝑥 ∈𝑍𝑚1 且 𝑦 ∈𝑍𝑚2
 且 𝑦 ∈𝑍𝑚2 ,有 (𝑚2𝑥 +𝑚1𝑦,𝑚1𝑚2) =1
,有 (𝑚2𝑥 +𝑚1𝑦,𝑚1𝑚2) =1 ,由 (𝑚1,𝑚2) =1
,由 (𝑚1,𝑚2) =1 可得
 可得
 1=(𝑚2𝑥+𝑚1𝑦,𝑚1)=(𝑚2𝑥,𝑚1)=(𝑥,𝑚1), 1=(𝑚2𝑥+𝑚1𝑦,𝑚2)=(𝑚1𝑦,𝑚2)=(𝑦,𝑚2).
 1=(𝑚2𝑥+𝑚1𝑦,𝑚2)=(𝑚1𝑦,𝑚2)=(𝑦,𝑚2). 
 因此可得 𝑥 ∈𝑍∗𝑚1 且 𝑦 ∈𝑍∗𝑚2
 且 𝑦 ∈𝑍∗𝑚2 ,即 𝑀 ⊆𝑍∗𝑚
,即 𝑀 ⊆𝑍∗𝑚 。
。
 任取 𝑚2𝑥 +𝑚1𝑦 ∈𝑍∗𝑚 ,其中 𝑥 ∈𝑍∗𝑚1
,其中 𝑥 ∈𝑍∗𝑚1 且 𝑦 ∈𝑍∗𝑚2
 且 𝑦 ∈𝑍∗𝑚2 ,有 (𝑥,𝑚1) =1
,有 (𝑥,𝑚1) =1 且 (𝑦,𝑚2) =1
 且 (𝑦,𝑚2) =1 ,由 (𝑚1,𝑚2) =1
,由 (𝑚1,𝑚2) =1 可得
 可得
 (𝑚2𝑥+𝑚1𝑦,𝑚1)=(𝑚2𝑥,𝑚1)=(𝑥,𝑚1)=1, (𝑚2𝑥+𝑚1𝑦,𝑚2)=(𝑚1𝑦,𝑚2)=(𝑥,𝑚2)=1,
 (𝑚2𝑥+𝑚1𝑦,𝑚2)=(𝑚1𝑦,𝑚2)=(𝑥,𝑚2)=1, 
 因此可得 (𝑚2𝑥 +𝑚1𝑦,𝑚1𝑚2) =1 ,即 𝑍∗𝑚 ⊆𝑀
,即 𝑍∗𝑚 ⊆𝑀 。
。
 综上所述,
 𝑍∗𝑚=𝑚2𝑍∗𝑚1+𝑚1𝑍∗𝑚2. 
 为模 𝑚 的 既约 剩余系。
 的 既约 剩余系。
数论函数
数论函数(也称算术函数)指定义域为正整数的函数。数论函数也可以视作一个数列。
积性函数
定义
 在数论中,若函数 𝑓(𝑛) 满足 𝑓(1) =1
 满足 𝑓(1) =1 ,且 𝑓(𝑥𝑦) =𝑓(𝑥)𝑓(𝑦)
,且 𝑓(𝑥𝑦) =𝑓(𝑥)𝑓(𝑦) 对任意互质的 𝑥,𝑦 ∈𝐍∗
 对任意互质的 𝑥,𝑦 ∈𝐍∗ 都成立,则 𝑓(𝑛)
 都成立,则 𝑓(𝑛) 为 积性函数。
 为 积性函数。
 在数论中,若函数 𝑓(𝑛) 满足 𝑓(1) =1
 满足 𝑓(1) =1 且 𝑓(𝑥𝑦) =𝑓(𝑥)𝑓(𝑦)
 且 𝑓(𝑥𝑦) =𝑓(𝑥)𝑓(𝑦) 对任意的 𝑥,𝑦 ∈𝐍∗
 对任意的 𝑥,𝑦 ∈𝐍∗ 都成立,则 𝑓(𝑛)
 都成立,则 𝑓(𝑛) 为 完全积性函数。
 为 完全积性函数。
性质
若 𝑓(𝑥) 和 𝑔(𝑥)
 和 𝑔(𝑥) 均为积性函数,则以下函数也为积性函数:
 均为积性函数,则以下函数也为积性函数:
ℎ(𝑥)=𝑓(𝑥𝑝)ℎ(𝑥)=𝑓𝑝(𝑥)ℎ(𝑥)=𝑓(𝑥)𝑔(𝑥)ℎ(𝑥)=∑𝑑∣𝑥𝑓(𝑑)𝑔(𝑥𝑑)
对正整数 𝑥 ,设其唯一质因数分解为 𝑥 =∏𝑝𝑘𝑖𝑖
,设其唯一质因数分解为 𝑥 =∏𝑝𝑘𝑖𝑖 ,其中 𝑝𝑖
,其中 𝑝𝑖 为质数。
 为质数。
若 𝐹(𝑥) 为积性函数,则有 𝐹(𝑥) =∏𝐹(𝑝𝑘𝑖𝑖)
 为积性函数,则有 𝐹(𝑥) =∏𝐹(𝑝𝑘𝑖𝑖) 。
。
若 𝐹(𝑥) 为完全积性函数,则有 𝐹(𝑥) =∏𝐹(𝑝𝑘𝑖𝑖) =∏𝐹(𝑝𝑖)𝑘𝑖
 为完全积性函数,则有 𝐹(𝑥) =∏𝐹(𝑝𝑘𝑖𝑖) =∏𝐹(𝑝𝑖)𝑘𝑖 。
。
例子
- 单位函数:𝜀(𝑛) =[𝑛 =1]![\varepsilon(n)=[n=1]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。(完全积性) 。(完全积性)
- 恒等函数:id𝑘(𝑛) =𝑛𝑘 ,id1(𝑛) ,id1(𝑛) 通常简记作 id(𝑛) 通常简记作 id(𝑛) 。(完全积性) 。(完全积性)
- 常数函数:1(𝑛) =1 。(完全积性) 。(完全积性)
- 除数函数:𝜎𝑘(𝑛) =∑𝑑∣𝑛𝑑𝑘 。𝜎0(𝑛) 。𝜎0(𝑛) 通常简记作 𝑑(𝑛) 通常简记作 𝑑(𝑛) 或 𝜏(𝑛) 或 𝜏(𝑛) ,𝜎1(𝑛) ,𝜎1(𝑛) 通常简记作 𝜎(𝑛) 通常简记作 𝜎(𝑛) 。 。
- 欧拉函数:𝜑(𝑛) =∑𝑛𝑖=1[(𝑖,𝑛) =1]![\varphi(n)=\sum_{i=1}^n[(i,n)=1]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。 。
- 莫比乌斯函数:𝜇(𝑛) =⎧{ {⎨{ {⎩1𝑛=10∃𝑑>1,𝑑2∣𝑛(−1)𝜔(𝑛)otherwise ,其中 𝜔(𝑛) ,其中 𝜔(𝑛) 表示 𝑛 表示 𝑛 的本质不同质因子个数。 的本质不同质因子个数。
加性函数
定义
 在数论中,若函数 𝑓(𝑛) 满足 𝑓(1) =0
 满足 𝑓(1) =0 且 𝑓(𝑥𝑦) =𝑓(𝑥) +𝑓(𝑦)
 且 𝑓(𝑥𝑦) =𝑓(𝑥) +𝑓(𝑦) 对任意互质的 𝑥,𝑦 ∈𝐍∗
 对任意互质的 𝑥,𝑦 ∈𝐍∗ 都成立,则 𝑓(𝑛)
 都成立,则 𝑓(𝑛) 为 加性函数。
 为 加性函数。
 在数论中,若函数 𝑓(𝑛) 满足 𝑓(1) =0
 满足 𝑓(1) =0 且 𝑓(𝑥𝑦) =𝑓(𝑥) +𝑓(𝑦)
 且 𝑓(𝑥𝑦) =𝑓(𝑥) +𝑓(𝑦) 对任意的 𝑥,𝑦 ∈𝐍∗
 对任意的 𝑥,𝑦 ∈𝐍∗ 都成立,则 𝑓(𝑛)
 都成立,则 𝑓(𝑛) 为 完全加性函数。
 为 完全加性函数。
加性函数
 本节中的加性函数指数论上的加性函数 (Additive function),应与代数中的 Additive map 做区分。
性质
对正整数 𝑥 ,设其唯一质因数分解为 𝑥 =∏𝑝𝑘𝑖𝑖
,设其唯一质因数分解为 𝑥 =∏𝑝𝑘𝑖𝑖 ,其中 𝑝𝑖
,其中 𝑝𝑖 为质数。
 为质数。
若 𝐹(𝑥) 为加性函数,则有 𝐹(𝑥) =∑𝐹(𝑝𝑘𝑖𝑖)
 为加性函数,则有 𝐹(𝑥) =∑𝐹(𝑝𝑘𝑖𝑖) 。
。
若 𝐹(𝑥) 为完全加性函数,则有 𝐹(𝑥) =∑𝐹(𝑝𝑘𝑖𝑖) =∑𝐹(𝑝𝑖) ⋅𝑘𝑖
 为完全加性函数,则有 𝐹(𝑥) =∑𝐹(𝑝𝑘𝑖𝑖) =∑𝐹(𝑝𝑖) ⋅𝑘𝑖 。
。
例子
为方便叙述,令所有质数组成的集合为 𝑃 .
.
- 所有质因子数目:Ω(𝑛) =∑𝑝∣𝑛[𝑝 ∈𝑃]∑⌈log𝑝𝑛⌉𝑘=1[𝑝𝑘 ∣𝑛 ∧𝑝𝑘+1 ∤𝑛] ⋅𝑘![\Omega(n)=\sum_{p \mid n} [p \in P] \sum_{k=1}^{\lceil\log_p n\rceil} [p^k \mid n \wedge p^{k+1} \nmid n] \cdot k](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。(完全加性) 。(完全加性)
- 相异质因子数目:𝜔(𝑛) =∑𝑝∣𝑛[𝑝 ∈𝑃]![\omega(n)=\sum_{p \mid n} [p \in P]](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。 。
- 所有质因子之和:𝑎0(𝑛) =∑𝑝∣𝑛[𝑝 ∈𝑃]∑⌈log𝑝𝑛⌉𝑘=1[𝑝𝑘 ∣𝑛 ∧𝑝𝑘+1 ∤𝑛] ⋅𝑘𝑝![a_0(n)=\sum_{p \mid n} [p \in P] \sum_{k=1}^{\lceil\log_p n\rceil} [p^k \mid n \wedge p^{k+1} \nmid n] \cdot kp](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。(完全加性) 。(完全加性)
- 相异质因子之和:𝑎1(𝑛) =∑𝑝∣𝑛[𝑝 ∈𝑃] ⋅𝑝![a_1(n)=\sum_{p \mid n}[p \in P] \cdot p](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 。 。
参考资料与注释
- 潘承洞,潘承彪。初等数论。北京大学出版社。
本页面最近更新:2025/10/20 12:59:22,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:Tiphereth-A, c-forrest, Enter-tainer, Great-designer, HeRaNO, ksyx, 383494, buuzzing, cr4c1an, Emp7iness, jifbt, Kaiser-Yang, Koishilll, Marcythm, Qiu-Quanzhi, Saisyc, sshwy, StarryReverie, StudyingFather, Xeonacid, xyf007
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用