同余的概念和基本性质
同余的概念和基本性质
- 同余的定义和基本性质(定义1,命题1-命题8,定理1-定理2)
- 定义1
- 练习1
- 命题1
- 定理1
- 命题2
- 命题3
- 定理2
- 命题4
- 命题5
- 命题6
- 命题7
- 命题8
- 同余的应用(检验因数的方法,弃九法)
- 引理1
- 例1
- 例2
- 引理2
- 例3
- 例4
- 引理3
- 例5
- 练习2
- 命题9
- 例7
- 弃九法
- 例8
同余的定义和基本性质(定义1,命题1-命题8,定理1-定理2)
定义1
给定一个正整数 m m m,把它叫做模。如果用 m m m去除任意两个整数 a , b a,b a,b所得的余数相同,则称 a , b a,b a,b模 m m m同余,记作 a ≡ b ( m o d m ) a \equiv b \pmod{m} a≡b(modm)。如果余数不同,则称
a , b a,b a,b对模 m m m不同余,记作 a ≢ b ( m o d m ) a \not\equiv b \pmod m a≡b(modm)。
练习1
设 m = 6 , m=6, m=6,试判断下列两个数是否对模 m m m同余
- 1 , 7 1, 7 1,7 可知 1 m o d 6 = 1 , 7 m o d 6 = 1 1 \ mod \ 6=1, 7 \ mod \ 6 =1 1 mod 6=1,7 mod 6=1 则同余也就是 1 ≡ 7 ( m o d 6 ) 1 \equiv 7 \pmod 6 1≡7(mod6)
- 17 , 23 17, 23 17,23 这二者的差是 6 6 6,很容易知道也是同余的 17 ≡ 23 ( m o d 6 ) 17 \equiv 23 \pmod 6 17≡23(mod6)
- 23 , 17 23,17 23,17 一样的 交换了一下位置不影响
- 112 , 112 112,112 112,112显然同余,数字都一样
- 0 , 25 0, 25 0,25不同余
- − 37 , 26 -37, 26 −37,26 对于负数,我们可以转换成整数再取余也就是 5 , 26 5,26 5,26很显然不同余
从练习1中我们可以很容易的知道三个性质
- 如果 a ≡ b ( m o d m ) ⇒ b ≡ a ( m o d m ) a \equiv b \pmod m \Rightarrow b \equiv a \pmod m a≡b(modm)⇒b≡a(modm)
- a ≡ a ( m o d m ) a \equiv a \pmod m a≡a(modm)
- 如果 ∣ a − b ∣ = k m , \left| a-b\right|=km, ∣a−b∣=km,那么 a ≡ b ( m o d m ) a \equiv b \pmod m a≡b(modm) 换言之,也就是说如果 m ∣ ( a − b ) m \mid (a-b) m∣(a−b),那么 a ≡ b ( m o d m ) a \equiv b \pmod m a≡b(modm)
下面来介绍详细的性质
命题1
整数对模 m m m同余关系是一个等价关系,即
- a ≡ a ( m o d m ) a \equiv a \pmod m a≡a(modm) (自反性) 这个是很显然的,刚才的例题也看到了,自己和自己一定是模 m m m同余的
- 若 a ≡ b ( m o d m ) a \equiv b \pmod m a≡b(modm),则 b ≡ a ( m o d m ) b\equiv a \pmod m b≡a(modm) (对称性)
- 若 a ≡ b ( m o d m ) , b ≡ c ( m o d m ) a \equiv b \pmod m,b \equiv c \pmod m a≡b(modm),b≡c(modm),则 a ≡ c ( m o d m ) a \equiv c \pmod m a≡c(modm) (传递性)
定理1
整数 m m m对模 m m m同余的充要条件为 m ∣ ( a − b ) m \mid (a-b) m∣(a−b)也即 a = b + m t , t ∈ Z a=b+mt,t\in \mathbb{Z} a=b+mt,t∈Z.
换言之 a ≡ b ( m o d m ) ⇔ m ∣ ( a − b ) ⇔ a = b + m t a \equiv b \pmod m \Leftrightarrow m \mid (a-b) \Leftrightarrow a = b+mt a≡b(modm)⇔m∣(a−b)⇔a=b+mt
命题2
- 若 a 1 ≡ b 1 ( m o d m ) , a 2 ≡ b 2 ( m o d m ) , a_1 \equiv b_1 \pmod m,a_2 \equiv b_2 \pmod m, a1≡b1(modm),a2≡b2(modm),则 a 1 + a 2 ≡ b 1 + b 2 ( m o d m ) a_1 + a_2 \equiv b_1+b_2 \pmod m a1+a2≡b1+b2(modm)
- 若 a + b ≡ c ( m o d m ) a+b \equiv c \pmod m a+b≡c(modm),则 a ≡ c − b ( m o d m ) a \equiv c-b \pmod m a≡c−b(modm)
命题3
若 a 1 ≡ b 1 ( m o d m ) , a 2 ≡ b 2 ( m o d m ) a_1 \equiv b_1 \pmod m,a_2 \equiv b_2 \pmod m a1≡b1(modm),a2≡b2(modm),则 a 1 a 2 ≡ b 1 b 2 ( m o d m ) a_1a_2 \equiv b_1b_2 \pmod m a1a2≡b1b2(modm),
特别地
- 若 a ≡ b ( m o d m ) a \equiv b \pmod m a≡b(modm),则 a k ≡ b k ( m o d m ) ak \equiv bk \pmod m ak≡bk(modm)
- 若 a ≡ b ( m o d m ) a \equiv b \pmod m a≡b(modm)则 a n ≡ b n ( m o d m ) a^n \equiv b^n \pmod m an≡bn(modm)
对于2,其实只要连续使用命题3即可得到,这是很容易的。
同余有加减乘,但除法是个意外,需要用到逆元。
下面我们给出定理2
定理2
若 A α 1 , α 2 , … , α k ≡ B α 1 , α 2 , … , α k ( m o d m ) A_{\alpha_1,\alpha_2,\dots,\alpha_k} \equiv B_{\alpha_1,\alpha_2,\dots,\alpha_k} \pmod m Aα1,α2,…,αk≡Bα1,α2,…,αk(modm),
x i ≡ y i ( m o d m ) , i = 1 , 2 , … , k , x_i \equiv y_i \pmod m,i=1,2,\dots,k, xi≡yi(modm),i=1,2,…,k,
则
∑ α 1 , α 2 , … , α k A α 1 , α 2 , … , α k x 1 α 1 … x k α k = ∑ α 1 , α 2 , … , α k B α 1 , α 2 , … , α k y 1 α 1 … y k α k ( m o d m ) . \displaystyle \sum_{\alpha1,\alpha_2,\dots,\alpha_k}A_{\alpha_1,\alpha_2,\dots,\alpha_k}x_1^{\alpha_1}\dots x_k^{\alpha_k}=\displaystyle \sum_{\alpha1,\alpha_2,\dots,\alpha_k}B_{\alpha_1,\alpha_2,\dots,\alpha_k}y_1^{\alpha_1}\dots y_k^{\alpha_k} \pmod m. α1,α2,…,αk∑Aα1,α2,…,αkx1α1…xkαk=α1,α2,…,αk∑Bα1,α2,…,αky1α1…ykαk(modm).
特别地,若 a i ≡ b i ( m o d m ) , i = 1 , 2 , … , n , a_i \equiv b_i \pmod m,i=1,2,\dots,n, ai≡bi(modm),i=1,2,…,n, 则
a n x n + a n − 1 x n − 1 + ⋯ + a 0 ≡ b n x n + b n − 1 x n − 1 + ⋯ + b 0 ( m o d m ) . a_nx^n+a_{n-1}x^{n-1}+\dots +a_0 \equiv b_nx^n+b_{n-1}x^{n-1}+\dots+b_0 \pmod m. anxn+an−1xn−1+⋯+a0≡bnxn+bn−1xn−1+⋯+b0(modm).
取 k = 1 , k=1, k=1,由 a α = b α ( m o d m ) , x ≡ x ( m o d m ) a_{\alpha}=b_{\alpha} \pmod m, x \equiv x \pmod m aα=bα(modm),x≡x(modm)即可证特例
这个证明也好证,把命题2命题3拿来交叉用即可,也不难,就是看着复杂点。
命题4
若 a ≡ b ( m o d m ) , a \equiv b \pmod m, a≡b(modm),且 a = a 1 d , b = b 1 d , ( d , m ) = 1 , a=a_1d,b=b_1d,(d,m)=1, a=a1d,b=b1d,(d,m)=1,则 a 1 ≡ b 1 ( m o d m ) a_1 \equiv b_1 \pmod m a1≡b1(modm).
这个有点像除法了,我们可以写的简略一点 a 1 d ≡ b 1 d ( m o d m ) , ( d , m ) = 1 ⇒ a 1 ≡ b 1 ( m o d m ) a_1d \equiv b_1d \pmod m, (d,m)=1\Rightarrow a_1 \equiv b_1 \pmod m a1d≡b1d(modm),(d,m)=1⇒a1≡b1(modm)
是不是就像约分了。 这个体现的就是同余关系式中的除法。
证明:
a ≡ b ( m o d m ) ⇔ m ∣ ( a − b ) = a 1 d − b 1 d = d ( a 1 − b 1 ) , ( d , m ) = 1 ⇒ m ∣ ( a 1 − b 1 ) ⇒ a 1 ≡ b 1 ( m o d m ) a \equiv b \pmod m \Leftrightarrow m \mid (a-b)=a_1d-b_1d=d(a_1-b_1),(d,m)=1 \Rightarrow m \mid (a_1-b_1) \Rightarrow a_1 \equiv b_1 \pmod m a≡b(modm)⇔m∣(a−b)=a1d−b1d=d(a1−b1),(d,m)=1⇒m∣(a1−b1)⇒a1≡b1(modm)
命题5
-
若 a ≡ b ( m o d m ) , k > 0 , a \equiv b \pmod m,k>0, a≡b(modm),k>0,则 a k ≡ b k ( m o d m k ) ; ak \equiv bk \pmod {mk}; ak≡bk(modmk);
-
若 a ≡ b ( m o d m ) , d a \equiv b \pmod m,d a≡b(modm),d是 a , b a,b a,b及 m m m的任一正公因数,则
a d ≡ b d ( m o d m d ) . \frac{a}{d} \equiv \frac{b}{d} \pmod {\frac{m}{d}}. da≡db(moddm).
下面给出证明
-
a ≡ b ( m o d m ) ⇒ a = b + m t , a k = b k + m k t ⇒ a k ≡ b k ( m o d m k ) a \equiv b \pmod m \Rightarrow a = b +mt, ak=bk+mkt \Rightarrow ak\equiv bk \pmod {mk} a≡b(modm)⇒a=b+mt,ak=bk+mkt⇒ak≡bk(modmk)
-
d d d是 a , b , m a,b,m a,b,m的正公因数,所以有 a d , b d , m d \frac{a}{d},\frac{b}{d},\frac{m}{d} da,db,dm都是整数,从而
a ≡ b ( m o d m ) ⇒ a = b + m t , a d = b d + m d t ⇒ a d ≡ b d ( m o d m d ) a \equiv b \pmod m \Rightarrow a = b + mt, \frac{a}{d}=\frac{b}{d}+\frac{m}{d}t \Rightarrow \frac{a}{d} \equiv \frac{b}{d} \pmod {\frac{m}{d}} a≡b(modm)⇒a=b+mt,da=db+dmt⇒da≡db(moddm)
命题6
若 a ≡ b ( m o d m i ) , i = 1 , 2 , … , k , a \equiv b \pmod {m_i},i=1,2,\dots,k, a≡b(modmi),i=1,2,…,k,则
a ≡ b ( m o d [ m 1 , m 2 , … , m k ] ) . a \equiv b \pmod {[m_1,m_2,\dots,m_k]}. a≡b(mod[m1,m2,…,mk]).
证这个的话我们需要用到 a , b a,b a,b的所有公倍数就是 [ a , b ] [a,b] [a,b]的所有公倍数
然后还需要 [ a 1 , a 2 ] = m 2 , [ m 2 , a 3 ] = m 3 , … , [ m n − 1 , a n ] = m n ⇒ [ a 1 , a 2 , … , a m ] = m n [a_1,a_2]=m_2,[m_2,a_3]=m_3,\dots,[m_{n-1},a_n]=m_n \Rightarrow [a_1,a_2,\dots,a_m]=m_n [a1,a2]=m2,[m2,a3]=m3,…,[mn−1,an]=mn⇒[a1,a2,…,am]=mn
于是可以很愉快得到新的一个命题:
a 1 , a 2 , … , a n a_1,a_2,\dots,a_n a1,a2,…,an的所有公倍数就是 [ a 1 , a 2 , … , a n ] [a_1,a_2,\dots,a_n] [a1,a2,…,an]的所有公倍数。
证明:
a ≡ b ( m o d m ) ⇒ m i ∣ ( a − b ) ⇔ a − b a \equiv b \pmod m \Rightarrow m_i \mid (a-b) \Leftrightarrow a-b a≡b(modm)⇒mi∣(a−b)⇔a−b是 m i m_i mi的倍数 i = 1 , 2 , … , k i=1,2,\dots,k i=1,2,…,k 也就是说
a − b a-b a−b是 m 1 , m 2 , … , m k m_1,m_2,\dots,m_k m1,m2,…,mk的倍数,由此知 a − b a-b a−b是 [ m 1 , m 2 , … , m k ] [m_1,m_2,\dots,m_k] [m1,m2,…,mk]的倍数
从而有 [ m 1 , m 2 , … , m k ] ∣ ( a − b ) ⇒ a ≡ b ( m o d [ m 1 , m 2 , … , m k ] ) [m_1,m_2,\dots,m_k] \mid (a-b) \Rightarrow a \equiv b \pmod {[m_1,m_2,\dots,m_k]} [m1,m2,…,mk]∣(a−b)⇒a≡b(mod[m1,m2,…,mk])
命题7
若 a ≡ b ( m o d m ) , d ∣ m , d > 0 , a \equiv b \pmod m, d\mid m, d>0, a≡b(modm),d∣m,d>0,则 a ≡ b ( m o d d ) . a \equiv b \pmod d. a≡b(modd).
这个的证明还是很容易的,由 a ≡ b ( m o d m ) ⇒ m ∣ ( a − b ) , m ∣ d ⇒ d ∣ ( a − b ) ⇒ a ≡ b ( m o d d ) a \equiv b \pmod m \Rightarrow m \mid (a-b),m \mid d \Rightarrow d \mid (a-b) \Rightarrow a \equiv b \pmod d a≡b(modm)⇒m∣(a−b),m∣d⇒d∣(a−b)⇒a≡b(modd)
命题8
若 a ≡ b ( m o d m ) , a \equiv b \pmod m, a≡b(modm),则 ( a , m ) = ( b , m ) , (a,m)=(b,m), (a,m)=(b,m),因而若 d d d能整数 m m m及 a , b a,b a,b二数之一,则 d d d必能整除 a , b a,b a,b中的另一个。
我们需要用到这个结论: 若 a = b q + c , a=bq+c, a=bq+c,则 ( a , b ) = ( b , c ) (a,b)=(b,c) (a,b)=(b,c)这个在1.2节的定理3
证明:
a ≡ b ( m o d m ) ⇒ a = b + m t ⇒ ( a , m ) = ( b , m ) a\equiv b \pmod m \Rightarrow a = b + mt \Rightarrow (a,m)=(b,m) a≡b(modm)⇒a=b+mt⇒(a,m)=(b,m)
后面那半句我们只证一种情况,另一种类似
若 d ∣ m , d ∣ a ⇒ d ∣ ( a , m ) = ( b , m ) ⇒ d ∣ b d\mid m,d\mid a \Rightarrow d \mid (a,m)=(b,m) \Rightarrow d \mid b d∣m,d∣a⇒d∣(a,m)=(b,m)⇒d∣b另外一种类似可证。
同余的应用(检验因数的方法,弃九法)
检出因数的一些方法(可整除性特征)
引理1
一切能被 3 3 3或 9 9 9整除的充要条件是它的十进制数码的和能被 3 3 3或 9 9 9整除。
这个结论小学应该都知道,我们使用同余来证明一下。
∀ a ∈ Z , a = a n a n − 1 … a 1 a 0 \forall a \in \mathbb{Z}, a=a_na_{n-1}\dots a_1a_0 ∀a∈Z,a=anan−1…a1a0(十进制) = a n 10 n + a n − 1 10 n − 1 + ⋯ + a 1 10 + a 0 = ∑ i = 0 n a i 10 i =a_n10^n+a_{n-1}10^{n-1}+\dots+a_110+a_0=\displaystyle \sum_{i=0}^{n}a_i10^i =an10n+an−110n−1+⋯+a110+a0=i=0∑nai10i
10 ≡ 1 ( m o d 3 ) ⇒ 10 i ≡ 1 i = 1 ( m o d 3 ) , i = 1 , 2 , … , n 10 \equiv 1 \pmod 3 \Rightarrow 10^i \equiv 1^i=1 \pmod 3,i=1,2,\dots,n 10≡1(mod3)⇒10i≡1i=1(mod3),i=1,2,…,n
a i 10 i ≡ a i ( m o d 3 ) ⇒ ∑ i = 0 n a i 10 i ≡ ∑ i = 0 n a i ( m o d 3 ) a_i10^i \equiv a_i \pmod 3 \Rightarrow \displaystyle \sum_{i=0}^{n}a_i10^i \equiv \sum_{i=0}^{n}a_i \pmod 3 ai10i≡ai(mod3)⇒i=0∑nai10i≡i=0∑nai(mod3)
证毕。9的话类似可证,把3换成9即可。
例1
a = 5874192 a=5874192 a=5874192,试判断 a a a是否能被 3 3 3或 9 9 9整除
这是显然的,因为数位和为 36 36 36根据引理1显然是成立的。
例2
a = 435693 a=435693 a=435693,试判断 a a a是否能被 3 3 3或 9 9 9整除。
s u m = 4 + 3 + 5 + 6 + 9 + 3 = 30 sum=4+3+5+6+9+3=30 sum=4+3+5+6+9+3=30显然是可以被 3 3 3整除的,但是不能被 9 9 9整除。
引理2
设正整数
a = a n 1000 n + a n − 1 1000 n − 1 + ⋯ + a 0 , 0 ≤ a i < 1000 , a=a_n1000^n+a_{n-1}1000^{n-1}+\dots+a_0, 0 \le a_i <1000, a=an1000n+an−11000n−1+⋯+a0,0≤ai<1000,
则 7 7 7(或 11 11 11或 13 13 13)整除 a a a的充要条件是 7 7 7(或 11 11 11或 13 13 13)整除
( a 0 + a 2 + … ) − ( a 1 + a 3 + … ) = ∑ i = 0 n ( − 1 ) i a i (a_0+a_2+\dots)-(a_1+a_3+\dots)=\displaystyle \sum_{i=0}^{n}(-1)^{i}a_i (a0+a2+…)−(a1+a3+…)=i=0∑n(−1)iai.
举个例子
123456789 = 123 × 1000 2 + 456 × 1000 1 + 789 × 1000 0 123456789=123\times 1000^2+456\times 1000^1 + 789\times 1000^0 123456789=123×10002+456×10001+789×10000
相当于是 1000 1000 1000进制。 其实就相当于把这个数三位三位的截断。
从低位到高位依次为 a 0 , a 1 , … a_0,a_1,\dots a0,a1,…
我们先来个具体例子熟悉一下 然后给出它的证明
例3
设 a = 637693 a=637693 a=637693,试判断 a a a是否能被 7 , 11 7,11 7,11或 13 13 13整除。
a 0 − a 1 = 693 − 637 = 56 a_0-a_1=693-637=56 a0−a1=693−637=56这个数可以整除 7 7 7但不能整除 11 , 13 11,13 11,13
所以 a a a可以被 7 7 7整除,但不能被 11 , 13 11,13 11,13整除。
例4
设 a = 75312289 a=75312289 a=75312289,试判断 a a a是否能被 7 , 11 7,11 7,11或 13 13 13整除。
a 0 − a 1 + a 2 = 289 − 312 + 75 = 52 a_0-a_1+a_2=289-312+75=52 a0−a1+a2=289−312+75=52 显然这个数可以整除 13 13 13
下面来证明一下这个引理
显然的 1000 ≡ ( − 1 ) ( m o d 7 ) ⇒ 1000 i ≡ ( − 1 ) i ( m o d 7 ) 1000 \equiv (-1)\pmod 7 \Rightarrow 1000^i \equiv (-1)^i \pmod 7 1000≡(−1)(mod7)⇒1000i≡(−1)i(mod7)
从而有 a i 1000 i ≡ ( − 1 ) i a i ( m o d 7 ) ⇒ ∑ i = 0 n a i 1000 i ≡ ∑ i = 0 n ( − 1 ) i a i ( m o d 7 ) a_i1000^i \equiv (-1)^ia_i \pmod 7 \Rightarrow \displaystyle \sum_{i=0}^{n}a_i1000^i \equiv \sum_{i=0}^{n}(-1)^ia_i \pmod 7 ai1000i≡(−1)iai(mod7)⇒i=0∑nai1000i≡i=0∑n(−1)iai(mod7)
11 , 13 11,13 11,13同理可证。
引理3
- 一个整数能被 2 2 2整除当且仅当它的末位数字是偶数。
- 一个整数能被 5 5 5整除当且仅当它的末位数字是 0 0 0或 5 5 5。
- 一个整数能被 4 4 4或 25 25 25整除当且仅当它的末两位数字能被 4 4 4或 25 25 25整除。
- 一个整除能被 8 8 8或 125 125 125整除当且仅当它的末三位数字能被 8 8 8或 125 125 125整除
- 一个数字能被 99 99 99整除当且仅当它从个位起两位一段,所有数段之和能被 99 99 99整除。
下面我们来证明一下
- 设 a = a n a n − 1 … a 1 a 0 = a n a n − 1 … a 1 × 10 + a 0 , a 0 = a − a n a n − 1 … a 1 × 10 a=a_na_{n-1}\dots a_1a_0=a_na_{n-1}\dots a_1 \times 10 + a_0, a_0=a-a_na_{n-1}\dots a_1 \times 10 a=anan−1…a1a0=anan−1…a1×10+a0,a0=a−anan−1…a1×10
" ⇒ : " "\Rightarrow:" "⇒:" 已知 2 ∣ a , 2 ∣ 10 , 2 \mid a, 2 \mid 10, 2∣a,2∣10,故有 2 ∣ 10 ⋅ a n a n − 1 … a 1 2 \mid 10 \cdot a_na_{n-1}\dots a_1 2∣10⋅anan−1…a1,从而有 2 ∣ ( a − a n a n − 1 … a 1 ) = a 0 2 \mid (a-a_na_{n-1}\dots a_1)=a_0 2∣(a−anan−1…a1)=a0从而我们可以得到它的末位数字 a 0 a_0 a0是一个偶数。
" ⇐ : " "\Leftarrow:" "⇐:" 已知 a 0 a_0 a0是偶数, 2 ∣ a , 2 ∣ 10 , 2 ∣ 10 ⋅ a n a n − 1 ⋯ a 1 2\mid a, 2 \mid 10, 2 \mid 10 \cdot a_na_{n-1}\cdots a_1 2∣a,2∣10,2∣10⋅anan−1⋯a1,从而有 2 ∣ ( a 0 + 10 × a n a n − 1 ⋯ a 1 ) = a 2 \mid (a_0 + 10 \times a_na_{n-1}\cdots a_1)=a 2∣(a0+10×anan−1⋯a1)=a
类似的2,3,4同理可证。
下面来证一下5 这个证明和引理2的证明很像
我们可以把 a a a写成这样的形式 a = a n 100 n + a n − 1 100 n − 1 + ⋯ + a 1 100 + a 0 , 0 ≤ a i < 100 a=a_n100^n+a_{n-1}100^{n-1}+\dots+a_1100+a_0, 0 \le a_i <100 a=an100n+an−1100n−1+⋯+a1100+a0,0≤ai<100
100 ≡ 1 ( m o d 99 ) ⇒ 100 i ≡ 1 ( m o d 99 ) ⇒ a i 100 i ≡ a i ( m o d 99 ) 100 \equiv 1 \pmod {99} \Rightarrow 100^i \equiv 1 \pmod {99} \Rightarrow a_i100^i \equiv a_i \pmod {99} 100≡1(mod99)⇒100i≡1(mod99)⇒ai100i≡ai(mod99)
⇒ ∑ i = 0 n a i 100 i ≡ ∑ i = 0 n a i ( m o d 99 ) \Rightarrow \displaystyle \sum_{i=0}^{n}a_i100^i \equiv \sum_{i=0}^{n}a_i \pmod {99} ⇒i=0∑nai100i≡i=0∑nai(mod99)
从而 99 ∣ a ⇔ 99 ∣ ∑ i = 0 n a i = ( a 0 + a 1 + a 2 + ⋯ + a n ) 99 \mid a \Leftrightarrow 99 \mid \displaystyle \sum_{i=0}^{n}a_i=(a_0+a_1+a_2+\dots +a_n) 99∣a⇔99∣i=0∑nai=(a0+a1+a2+⋯+an)
下面看点题
例5
- 设 2 a + b = 16 2a+b=16 2a+b=16,证明 5 a b 5ab 5ab能被 4 4 4整除
- 设 4 b + 2 c + d = 32 , 4b+2c+d=32, 4b+2c+d=32,证明 3 b c d 3bcd 3bcd能被 8 8 8整除
对于1,我们只需要 a b ab ab能被 4 4 4整除即可,下面来证,
a b = 100 a + b = 8 a + 2 a + b = 8 a + 16 = 4 ( 2 a + 4 ) ab=100a+b=8a+2a+b=8a+16=4(2a+4) ab=100a+b=8a+2a+b=8a+16=4(2a+4)这显然是可以被 4 4 4整除的
然后我们看一下2
也只需要证 b c d bcd bcd能被 8 8 8整除
b c d = 100 b + 10 c + d = 96 b + 8 c + 4 b + 2 c + d = 96 b + 8 c + 32 = 8 ( 12 b + c + 4 ) bcd=100b+10c+d=96b+8c+4b+2c+d=96b+8c+32=8(12b+c+4) bcd=100b+10c+d=96b+8c+4b+2c+d=96b+8c+32=8(12b+c+4) 这显然也能被 8 8 8整除
练习2
应用检查因数的方法求出下列各数的标准分解式。
- 1535625 1535625 1535625
- 1158066 1158066 1158066
来看1, 1535625 1535625 1535625这个数一看就能被 5 5 5整除,后三位可以被 125 125 125整除
所以 a = 1535625 = 125 × 12285 = 125 × 5 × 2457 = 5 4 × 2457 = 5 4 × 9 × 273 a=1535625=125 \times 12285 = 125 \times 5 \times 2457=5^4 \times 2457=5^4 \times 9 \times 273 a=1535625=125×12285=125×5×2457=54×2457=54×9×273
= 5 4 × 3 2 × 3 × 7 × 13 = 3 3 × 5 4 × 7 × 13 =5^4 \times 3^2 \times 3 \times 7 \times 13 = 3^3 \times 5^4 \times 7 \times 13 =54×32×3×7×13=33×54×7×13
然后来看2
首先可以被 2 2 2整除,如何看是否能被 3 3 3整除,加起来是可以的,于是我们可以先一直做除法
然后我们看是否可以被 7 7 7整除,根据引理2, 66 − 158 + 1 = − 91 66-158+1=-91 66−158+1=−91这是可以被 7 7 7和 13 13 13整除的
于是我们就有了
1158066 = 2 × 3 2 × 7 2 × 13 × 101 1158066=2 \times 3^2 \times 7^2 \times 13 \times 101 1158066=2×32×72×13×101
下面来看命题9和弃九法(验算两个整数相乘计算结果对错的方法)
命题9
设 a b c d e , abcde, abcde,那么
- 若 b = d = 9 , b=d=9, b=d=9,则 a b c d e ≡ a + c + e ( m o d 9 ) abcde \equiv a + c + e \pmod 9 abcde≡a+c+e(mod9) 十位和千位
- 若 b + d = 9 , b+d=9, b+d=9,则 a b c d e = a + c + e ( m o d 9 ) abcde=a+c+e \pmod 9 abcde=a+c+e(mod9)
特别地,若1或2的条件满足,则 9 ∣ a b c d e 9 \mid abcde 9∣abcde当且仅当 9 ∣ ( a + c + e ) . 9 \mid (a + c + e). 9∣(a+c+e).
a b c d e = a + b + c + d + e ( m o d 9 ) abcde=a+b+c+d+e \pmod 9 abcde=a+b+c+d+e(mod9)
这个证明由引理1可知 a b c d e = 10000 a + 1000 b + 100 c + 10 d + e ≡ a + b + c + d + e ( m o d 9 ) abcde=10000a+1000b+100c+10d+e \equiv a+b+c+d+e \pmod 9 abcde=10000a+1000b+100c+10d+e≡a+b+c+d+e(mod9)
对于1,好证的很,
b = 9 , 0 ≡ − b = − 9 ( m o d 9 ) b=9, 0\equiv-b=-9 \pmod 9 b=9,0≡−b=−9(mod9)
d = 9 , 0 ≡ − d = − 9 ( m o d 9 ) d=9,0 \equiv -d =-9 \pmod 9 d=9,0≡−d=−9(mod9)
由上面三个式子得 a b c d e + 0 + 0 = a + b + c + d + e − b − d abcde+0+0=a+b+c+d+e-b-d abcde+0+0=a+b+c+d+e−b−d
化简即得。
对于2
0 ≡ b + d = 9 ( m o d 9 ) 0 \equiv b+d=9 \pmod 9 0≡b+d=9(mod9)
由最上面那个也可以证得。
命题9是可以推广到 n n n位数的
这个其实就是说,有9的直接划掉不看,看其他三位数即可
总的来说就是找9以及加和等于9的然后划去看剩下的数
弃九法的本质:一个十进制整数对 9 的余数,等于它的各位数字之和对 9 的余数。
下面来看一个题
例7
计算 a = 28997 , b = 39459 , c = 1135236415 a=28997,b=39459,c=1135236415 a=28997,b=39459,c=1135236415被 9 9 9除所得的余数
对于 a a a,我们只需要看 287 287 287如何我们用第二条把2和7划掉,最后只剩一个 8 8 8,显然余数是 8 8 8。
然后我们来看 b = 39459 b=39459 b=39459,最后剩个 3 3 3
最后看 c = 1135236415 c=1135236415 c=1135236415,划掉之后剩 1121 1121 1121加起来等于 5 5 5所以余数是 5 5 5。
再看弃九法之前,我们给出这样的一个命题:
如果 a b = p ab=p ab=p,则 a b ≡ p ( m o d m ) ab \equiv p \pmod m ab≡p(modm)
逆否命题: 如果 a b ≢ p ( m o d m ) ab \not \equiv p \pmod m ab≡p(modm),那么 a b ≠ p ab \ne p ab=p
把这个命题和引理1结合到一起就是所谓的弃九法
弃九法
设某人计算 a ⋅ b = P a \cdot b=P a⋅b=P,且
a = a n 10 n + a n − 1 10 n − 1 + ⋯ + a 0 , 0 ≤ a i < 10 a=a_n10^n+a_{n-1}10^{n-1}+\dots+a_0, 0 \le a_i < 10 a=an10n+an−110n−1+⋯+a0,0≤ai<10
b = b m 10 m + b m − 1 10 m − 1 + ⋯ + b 0 , 0 ≤ b j < 10 b=b_m10^{m}+b_{m-1}10^{m-1}+\dots+b_0,0\le b_j<10 b=bm10m+bm−110m−1+⋯+b0,0≤bj<10
P = c t 10 t + c t − 1 10 t − 1 + ⋯ + c 0 , 0 ≤ c k < 10 P=c_t10^t+c_{t-1}10^{t-1}+\cdots+c_0,0\le c_k<10 P=ct10t+ct−110t−1+⋯+c0,0≤ck<10
则如果
( ∑ i = 0 n a i ) ( ∑ j = 0 m b j ) ≢ ∑ k = 0 t c k ( m o d 9 ) \displaystyle (\sum_{i=0}^{n}a_i)(\sum_{j=0}^{m}b_j)\not \equiv \sum_{k=0}^{t}c_k \pmod 9 (i=0∑nai)(j=0∑mbj)≡k=0∑tck(mod9)
那么所求得的结果是错误的。 这个方法可以判断你做错了,但是不保证你做的一定是对的。
比如 123 × 3 = 369 123 \times 3 = 369 123×3=369, 我把 369 369 369直接换成 9 9 9也是满足的,但显然我计算错误了。
使用 弃九法 检验加法是否正确的 C++ 代码
#include <bits/stdc++.h>using namespace std;using ll = long long;// 这段 lambda 内部的代码会在 main() 调用之前被执行。
int __OI_INIT__ = []() {ios::sync_with_stdio(0), cin.tie(0);cout.tie(0);cout << fixed << setprecision(12); // 设置输出浮点数默认精度为 12 位。return 0;
}();// 用法
/*int a = 1;double k = 2.0;string s = "hello world";_(a, k, s);输出 --->1 2.000000000000 hello world
*/
template<class... Args> void _(Args... args) {auto _ = [&](auto x) { cout << x << " "; };cout << "--->";int arr[] = {(_(args), 0)...};cout << "\n";
}// 计算数字和(数字和再 mod 9)
// 特殊处理:如果结果是 0,则返回 9(因为 9 ≡ 0 mod 9,但在弃九法中我们通常保留 9)
int digital_root(int n) {if (n == 0) return 0;int r = n % 9;return (r == 0) ? 9 : r;
}// 弃九法验证运算准确性
bool check_by_discarding_9(int a, int b, int user_sum) {int a_root = digital_root(a);int b_root = digital_root(b);int sum_root = digital_root(user_sum);// 使用弃九法return digital_root(a_root * b_root) == sum_root;
}void solve() {int a, b, user_sum;cout << "输入两个加数 a 和 b:" << endl;cin >> a >> b;cout << "输入你计算的积(用于验算):" << endl;cin >> user_sum;if (check_by_discarding_9(a, b, user_sum)) {cout << "弃九法验算通过:可能正确(不能保证)" << endl;} else {cout << "弃九法验算失败:一定有误!" << endl;}
}int main() {int tt = 1;// cin >> tt;while (tt--) {solve();}}
下面看个例8
例8
设 a = 28977 , b = 39495 , a=28977,b=39495, a=28977,b=39495,某人计算 a ⋅ b = 1145236415 a \cdot b=1145236415 a⋅b=1145236415,试用弃九法验证此结果是否正确。
显然是错误的啦
我们先用命题9划掉一些数字,易得
a ≡ 8 ( m o d 9 ) , b ≡ 3 ( m o d 9 ) , a b ≡ 24 ( m o d 9 ) a \equiv 8 \pmod 9,b \equiv 3 \pmod 9, ab \equiv 24 \pmod 9 a≡8(mod9),b≡3(mod9),ab≡24(mod9)
而 c ≡ 5 ( m o d 9 ) c\equiv 5 \pmod 9 c≡5(mod9)
这是不正确的。
我们使用上诉程序验证也是如此。