资源 整数的整除 裴蜀定理 互质消去律 素数原子律 最小公倍数 是 公倍数的因子 最大公约数与最小公倍数的关系 算数基本定理 资源
整数的整除
整除
一般地,设 a a a ,b b b 为整数,且 b ≠ 0 b \neq 0 b = 0 ,如果存在整数 q q q ,使得a = b q a=bq a = b q ,那么称 b b b 整除 a a a ,或 a a a 能被 b b b 整除,记作 b ∣ a b \mid a b ∣ a ,并且称 b b b 是 a a a 的因数,a a a 是 b b b 的倍数。如果这样的整数 q q q 不存在,就称 b b b 不整除 a a a ,记作 b ∤ a b \nmid a b ∤ a
整除的性质
a ∣ b ∧ b ∣ a ⇒ a = b ∨ a = − b a \mid b \land b\mid a \Rightarrow a = b \lor a = -b a ∣ b ∧ b ∣ a ⇒ a = b ∨ a = − b
a ∣ b ∧ b ∣ c ⇒ a ∣ c a \mid b \land b \mid c \Rightarrow a \mid c a ∣ b ∧ b ∣ c ⇒ a ∣ c
a ∣ b ∧ a ∣ c ⟹ a ∣ ( x b + y c ) ∀ x , y ∈ Z a \mid b \land a \mid c \implies a \mid (xb + yc) \quad \forall x,y \in \mathbb{Z} a ∣ b ∧ a ∣ c ⟹ a ∣ ( x b + yc ) ∀ x , y ∈ Z
证明 q , r q,r q , r 是唯一的
证明 ( a , b ) = ( b , r ) (a,b) = (b,r) ( a , b ) = ( b , r )
裴蜀定理
性质
设整数 a , b a,b a , b 不同时为零,则存在一对整数m , n m,n m , n 使得( a , b ) = a m + b n (a,b) = am +bn ( a , b ) = am + bn
证明
当b = 0 b = 0 b = 0 ,则( a , 0 ) = a × 1 + b × 0 (a,0) = a \times 1 + b \times 0 ( a , 0 ) = a × 1 + b × 0 ,此时 m = 1 , m = 0 m = 1 ,m = 0 m = 1 , m = 0
当b ≠ 0 b \neq 0 b = 0 ,
( a , b ) = ( b , r ) (a,b) = (b,r) ( a , b ) = ( b , r )
( b , r ) = b × m 1 + r × n 1 (b,r) = b \times m_1 + r\times n_1 ( b , r ) = b × m 1 + r × n 1
设( a , b ) = a × m 2 + b × n 2 (a ,b) = a \times m_2 + b \times n_2 ( a , b ) = a × m 2 + b × n 2 ,那么m 1 , n 1 , m 2 , n 2 m_1,n_1, m_2 ,n_2 m 1 , n 1 , m 2 , n 2 直接有什么关系?
因为( a , b ) = ( b , r ) (a,b) = (b,r) ( a , b ) = ( b , r )
a × m 2 + b × n 2 = b × m 1 + r × n 1 a \times m_2 + b \times n_2 = b \times m_1 + r\times n_1 a × m 2 + b × n 2 = b × m 1 + r × n 1
因为r = a − k b , k = ⌊ a ÷ b ⌊ r = a - kb, k = \lfloor a \div b \lfloor r = a − kb , k = ⌊ a ÷ b ⌊
a × m 2 + b × n 2 = b × m 1 + ∗ ( a − k b ) × n 1 a \times m_2 + b \times n_2 = b \times m_1 + *(a - kb)\times n_1 a × m 2 + b × n 2 = b × m 1 + ∗ ( a − kb ) × n 1
a × m 2 + b × n 2 = b × m 1 + a × n 1 − k b × n 1 a \times m_2 + b \times n_2 = b \times m_1 + a \times n_1 - kb \times n_1 a × m 2 + b × n 2 = b × m 1 + a × n 1 − kb × n 1
a × m 2 + b × n 2 = b × ( m 1 − k n 1 ) + a × n 1 a \times m_2 + b \times n_2 = b \times (m_1-kn_1) + a \times n_1 a × m 2 + b × n 2 = b × ( m 1 − k n 1 ) + a × n 1
最好得到:m 2 = n 1 , n 2 = m 1 − k n 1 m_2 = n_1, n_2 = m_1 - kn_1 m 2 = n 1 , n 2 = m 1 − k n 1
上面使用的数学归纳法
我的推导过程(第 3 步到第 10 步)实际上就是扩展欧几里得算法(Extended Euclidean Algorithm, exgcd) 的核心递推公式。
标准的数学语言:
命题 :设 a , b a, b a , b 是不全为零的整数,则存在整数 x , y x, y x , y 使得 gcd ( a , b ) = a x + b y \gcd(a, b) = ax + by g cd( a , b ) = a x + b y 。
证明(对 b b b 的大小进行强归纳):
奠基(Base Case) :
当 b = 0 b = 0 b = 0 时,gcd ( a , 0 ) = a \gcd(a, 0) = a g cd( a , 0 ) = a (不妨设 a > 0 a>0 a > 0 )。
取 x = 1 , y = 0 x = 1, y = 0 x = 1 , y = 0 ,则 a × 1 + 0 × 0 = a a \times 1 + 0 \times 0 = a a × 1 + 0 × 0 = a 成立。
结论对 b = 0 b=0 b = 0 成立。
归纳假设(Inductive Step) :
假设对于任意整数 b ′ < b b' < b b ′ < b ,结论都成立。
现在考虑 b > 0 b > 0 b > 0 的情况。
根据带余除法,设 a = k b + r a = k b + r a = kb + r ,其中 r = a m o d b r = a \bmod b r = a mod b ,且 0 ≤ r < b 0 \le r < b 0 ≤ r < b 。
由欧几里得算法性质知:gcd ( a , b ) = gcd ( b , r ) \gcd(a, b) = \gcd(b, r) g cd( a , b ) = g cd( b , r ) 。
因为 r < b r < b r < b ,根据归纳假设,存在整数 x ′ , y ′ x', y' x ′ , y ′ 使得:
gcd ( b , r ) = b x ′ + r y ′ \gcd(b, r) = b x' + r y' g cd( b , r ) = b x ′ + r y ′
递推导出(你的核心推导) :
将 r = a − k b r = a - k b r = a − kb 代入上式:
gcd ( a , b ) = b x ′ + ( a − k b ) y ′ = b x ′ + a y ′ − b k y ′ = a ( y ′ ) + b ( x ′ − k y ′ )
\begin{aligned}
\gcd(a, b) &= b x' + (a - k b) y' \\
&= b x' + a y' - b k y' \\
&= a(y') + b(x' - k y')
\end{aligned}
g cd( a , b ) = b x ′ + ( a − kb ) y ′ = b x ′ + a y ′ − bk y ′ = a ( y ′ ) + b ( x ′ − k y ′ ) 令 x = y ′ , y = x ′ − k y ′ x = y', \quad y = x' - k y' x = y ′ , y = x ′ − k y ′ 。
显然 x , y x, y x , y 均为整数。
则有 gcd ( a , b ) = a x + b y \gcd(a, b) = ax + by g cd( a , b ) = a x + b y 。
证毕。
关键点总结
你在推导中最重要的发现是系数的变换规则:
当前的 x x x (你的 m 2 m_2 m 2 ) ← \leftarrow ← 下一层的 y y y (你的 n 1 n_1 n 1 )
当前的 y y y (你的 n 2 n_2 n 2 ) ← \leftarrow ← 下一层的 x x x (你的 m 1 m_1 m 1 ) - k × k \times k × 下一层的 y y y
所有的这一切,都可以转化为代码
既然你对这个逻辑很清楚,这个证明直接对应到 C++ 代码就是这样的(在竞赛或算法题中非常常用):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
int exgcd ( int a, int b, int & x, int & y) {
if ( b == 0 ) {
x = 1 ;
y = 0 ;
return a;
}
int d = exgcd ( b, a % b, x, y) ;
int temp = x;
x = y;
y = temp - ( a / b) * y;
return d;
}
我的证明非常棒,完全抓住了裴蜀定理(Bézout’s identity)构造性证明的精髓!
互质消去律
互质消去律
欧几里得引理 : 若 a ∣ b c a|bc a ∣ b c 且 ( a , b ) = 1 (a,b)=1 ( a , b ) = 1 则 a ∣ c a|c a ∣ c
∵ ( a , b ) = 1 \because (a,b) = 1 ∵ ( a , b ) = 1
引用裴蜀定理 ∴ a m + b n = 1 \therefore am + bn = 1 ∴ am + bn = 1
两边同时乘以 c c c ,得到 ( a c ) m + ( b c ) n = c (ac)m + (bc)n = c ( a c ) m + ( b c ) n = c
已知前提: a ∣ a c , a ∣ b c a \mid ac , a\mid bc a ∣ a c , a ∣ b c
最终得到: a ∣ ( a c m + b c n = c ) ⇒ a ∣ c a \mid (acm + bcn = c) \Rightarrow a \mid c a ∣ ( a c m + b c n = c ) ⇒ a ∣ c
直觉 a 中的因子都在 c 中, 所以 a 可以整除 c
素数原子律
素数原子律
设 p p p 为素数,若 p ∣ a b p \mid ab p ∣ ab (即 p p p 整除 a a a 与 b b b 的乘积),则 p ∣ a p \mid a p ∣ a 或 p ∣ b p \mid b p ∣ b 。
素数就像物理学中的“原子”一样,是构成整数的最小单位,不可再分。
解释:如果一个素数 p p p 能整除 a × b a \times b a × b ,说明 a × b a \times b a × b 的“积木堆”里包含了一块 p p p 。因为 p p p 不能被劈开(它没有非 1 非己的因子),所以这块 p p p 要么完整地来自于 a a a ,要么完整地来自于 b b b ,不可能一人一半。
核心逻辑 :利用素数的特殊性,将路口分为“整除”和“互质”两条道。若是互质,直接根据消去律强制通向另一边。
分歧 :p p p 为素数,因子仅为 1 , p 1, p 1 , p
⇒ ( p , a ) \Rightarrow (p, a) ⇒ ( p , a ) 只有两种可能:p p p 或 1 1 1
情况一 :若 ( p , a ) = p (p, a) = p ( p , a ) = p
⇒ p ∣ a \Rightarrow p \mid a ⇒ p ∣ a ,命题直接成立
情况二 :若 ( p , a ) = 1 (p, a) = 1 ( p , a ) = 1
∵ p ∣ a b \because p \mid ab ∵ p ∣ ab 且 ( p , a ) = 1 (p, a) = 1 ( p , a ) = 1
引用 :互质消去律 (即:若 x ∣ y z x \mid yz x ∣ yz 且 ( x , y ) = 1 ⇒ x ∣ z (x, y)=1 \Rightarrow x \mid z ( x , y ) = 1 ⇒ x ∣ z )
∴ p ∣ b \therefore p \mid b ∴ p ∣ b
结论 :
综合上述 ⇒ p ∣ a \Rightarrow p \mid a ⇒ p ∣ a 或 p ∣ b p \mid b p ∣ b
证毕
最小公倍数 是 公倍数的因子
最小公倍数的整除性
设 a , b a, b a , b 的最小公倍数为 [ a , b ] [a, b] [ a , b ] 。则 [ a , b ] [a, b] [ a , b ] 一定整除 a , b a, b a , b 的任意一个公倍数。
也就是说: 最小公倍数 是 公倍数的因子
核心直觉 :最小公倍数 (LCM) 是所有公倍数的“基石”。任何其他的公倍数,都必须是它的倍数。如果除不尽,余数就会变成一个“更小”的公倍数,这与“最小”二字矛盾。
设 m = [ a , b ] m = [a, b] m = [ a , b ] 为最小公倍数, n n n 为任意公倍数
做带余除法: n = m q + r n = mq + r n = m q + r ( 0 ≤ r < m ) (0 \le r < m) ( 0 ≤ r < m )
∵ a , b ∣ n \because a,b \mid n ∵ a , b ∣ n 且 a , b ∣ m a,b \mid m a , b ∣ m
∴ a , b ∣ ( n − m q = r ) \therefore a,b \mid (n - mq = r) ∴ a , b ∣ ( n − m q = r ) ⇒ r \Rightarrow r ⇒ r 也是公倍数
矛盾点: 若 r > 0 r > 0 r > 0 ,则出现比 m m m 更小的公倍数 r r r
结论: r r r 必须为 0 ⇒ m ∣ n 0 \Rightarrow m \mid n 0 ⇒ m ∣ n
最大公约数与最小公倍数的关系
最大公约数与最小公倍数的关系
( a , b ) [ a , b ] = ∣ a × b ∣
(a,b)[a,b] = \mid a \times b\mid
( a , b ) [ a , b ] =∣ a × b ∣
算数基本定理
算数基本定理
任何大于1的整数总可以分解成素因数乘积的形式,并且,如果不计分解式中素
因数的次序,这种分解式是惟一的.
核心逻辑 :利用素数的“原子性”,像剥洋葱一样,一对一地把相同的因子找出来消掉,直到两边完全一样。
假设 n n n 存在两组素因子分解:
n = p 1 p 2 ⋯ p r = q 1 q 2 ⋯ q s n = p_1 p_2 \cdots p_r = q_1 q_2 \cdots q_s n = p 1 p 2 ⋯ p r = q 1 q 2 ⋯ q s
考察 左边第一个因子 p 1 p_1 p 1 :
∵ p 1 ∣ n \because p_1 \mid n ∵ p 1 ∣ n ,且 n = q 1 q 2 ⋯ q s n = q_1 q_2 \cdots q_s n = q 1 q 2 ⋯ q s
∴ p 1 ∣ q 1 q 2 ⋯ q s \therefore p_1 \mid q_1 q_2 \cdots q_s ∴ p 1 ∣ q 1 q 2 ⋯ q s
引用 素数原子律(欧几里得引理):
素数 p 1 p_1 p 1 必须整除右边的某一个 q k q_k q k 。
不妨设这个因子就是 q 1 q_1 q 1 (不影响结果,仅调整顺序)。
判定 素数性质:
∵ p 1 \because p_1 ∵ p 1 和 q 1 q_1 q 1 都是素数(只有因子 1 和自身)且 p 1 ∣ q 1 p_1 \mid q_1 p 1 ∣ q 1
∴ p 1 = q 1 \therefore p_1 = q_1 ∴ p 1 = q 1
消去 两边同时除以 p 1 p_1 p 1 :
p 2 ⋯ p r = q 2 ⋯ q s p_2 \cdots p_r = q_2 \cdots q_s p 2 ⋯ p r = q 2 ⋯ q s
归纳 重复上述过程:
每次消去一对相等的素因子。
最终必然得到 r = s r = s r = s ,且每一对 p i = q i p_i = q_i p i = q i 。
⇒ \Rightarrow ⇒ 分解式是唯一的。