Divisibility Part1(整除理论1)

Divisibility Part1

学习本节的基础:任意个整数之间进行加、减、乘的混合运算之后的结果仍然是整数。之后将不申明地承认这句话的正确性并加以运用。

用一个不为 0 0 0的数去除另一个数所得的商却不一定是整数( a a a b b b,写作 b a \frac{b}{a} ab a a a除以 b b b,写作 a b \frac{a}{b} ba),所以我们需要引进整除的概念,这节会对整除进行深入讨论。

接下来,我们会给出定义,且给出并证明定义引申出的定理,最后对这些加以运用。

定义 1 1 1 a , b a,b a,b 是任意两个整数,其中 b ≠ 0 b\neq0 b=0,如果存在一个整数 q q q,使得等式
a = b q ( 1 ) \qquad \qquad \qquad \qquad \qquad a=bq\qquad\qquad\qquad\qquad\qquad(1) a=bq(1)
成立,我们就说 b b b 整除 a a a a a a b b b 整除,记作 b ∣ a b|a ba,此时我们把 b b b 叫做 a a a因数,把 a a a 叫做 b b b​ 的倍数

如果 ( 1 ) (1) (1) 里面的整数 q q q 不存在,我们就说 b b b 不能整除 a a a,记作 b ∤ a b \nmid a ba

接下来从定义出发,证明一些关于整除的基本定理。

定理 1 1 1(传递性) a a a b b b 的倍数, b b b c c c 的倍数,则 a a a c c c 的倍数,也就是
b ∣ a , c ∣ b ⇒ a ∣ c b|a,c|b \Rarr a|c ba,cbac
由定义 1 1 1,可知 b ∣ a , c ∣ b b|a,c|b ba,cb,所以存在两个整数 a 1 , b 1 a_1,b_1 a1,b1,使得
a = a 1 b , b = b 1 c a=a_1b,\quad b=b_1c a=a1b,b=b1c
成立,因此
a = ( a 1 b 1 ) c a=(a_1b_1)c a=(a1b1)c
又因为 a 1 , b 1 a_1,b_1 a1,b1 是整数,所以 c ∣ a c|a ca

定理 2 2 2 a , b a,b a,b 都是 m m m 的倍数,那么 a ± b a\pm b a±b 也是 m m m 的倍数。

a , b a,b a,b 都是 m m m 的倍数,所以存在两个整数 a 1 , b 1 a_1,b_1 a1,b1,使得
a = a 1 m , b = b 1 m a = a_1m,\quad b=b_1m a=a1m,b=b1m
a ± b a\pm b a±b 可以写作
a ± b = ( a 1 ± b 1 ) m a\pm b = (a_1\pm b_1)m a±b=(a1±b1)m
a 1 ± b 1 a_1\pm b_1 a1±b1 是整数,故 a ± b a\pm b a±b m m m 的倍数。

同样的方法可以证明

定理 3 3 3 a 1 , a 2 , ⋯   , a n a_1,a_2,\cdots,a_n a1,a2,,an 都是 m m m 的倍数, q 1 , q 2 , ⋯   , q n q_1,q_2,\cdots,q_n q1,q2,,qn 是任意 n n n 个整数,则 q 1 a 1 + q 2 a 2 + ⋯ + q n a n q_1a_1+q_2a_2+\cdots+q_na_n q1a1+q2a2++qnan m m m 的倍数。

因为 q 1 a 1 , q 2 a 2 , ⋯   , q n a n q_1a_1,q_2a_2,\cdots,q_na_n q1a1,q2a2,,qnan a 1 , a 2 , ⋯   , a n a_1,a_2,\cdots,a_n a1,a2,,an 的倍数, a 1 , a 2 , ⋯   , a n a_1,a_2,\cdots,a_n a1,a2,,an m m m 的倍数,由定理 1 1 1 可得 q 1 a 1 , q 2 a 2 , ⋯   , q n a n q_1a_1,q_2a_2,\cdots,q_na_n q1a1,q2a2,,qnan m m m 的倍数

由定理 2 2 2 q 1 a 1 + q 2 a 2 + ⋯ + q n a n q_1a_1+q_2a_2+\cdots+q_na_n q1a1+q2a2++qnan m m m 的倍数。

定理 4 4 4(带余除法) 若 a , b a,b a,b 是任意两个整数,其中 b > 0 b>0 b>0,则存在两个整数 q , r q,r q,r,使得
a = b q + r ,   0 ≤ r < b ( 2 ) \qquad \qquad a=bq+r,\quad \: 0\leq r< b \qquad \qquad \qquad \qquad (2) a=bq+r,0r<b(2)
成立,而且 q , r q,r q,r 是唯一的。

作整数序列
⋯   , − 3 b , − 2 b , − b , 0 , b , 2 b , 3 b , ⋯ \cdots,-3b,-2b,-b,0,b,2b,3b,\cdots ,3b,2b,b,0,b,2b,3b,
那么 a a a 在这个序列的某相邻两项之间,即存在一个整数 q q q,使得
b q ≤ a < b ( q + 1 ) ( 3 ) \qquad \qquad \qquad bq\leq a<b(q+1)\qquad \qquad\qquad\qquad\quad (3) bqa<b(q+1)(3)
成立。令 r = a − b q r=a-bq r=abq。代入 ( 3 ) (3) (3)
0 ≤ r < b 0\leq r<b 0r<b
所以存在两个整数 q , r q,r q,r 使得 ( 2 ) (2) (2) 成立。

下面证明 q , r q,r q,r 的唯一性:设 q , r q,r q,r q 1 , r 1 q_1,r_1 q1,r1 是满足 ( 2 ) (2) (2) 的两对整数,则
{ a = b q + r ( 0 ≤ r < b ) a = b q 1 + r 1 ( 0 ≤ r 1 < b ) \begin{cases} a=bq+r\quad(0\leq r<b)\\ a=bq_1+r_1\quad(0\leq r_1<b) \end{cases} {a=bq+r(0r<b)a=bq1+r1(0r1<b)
联立得
b q + r = b q 1 + r 1 bq+r=bq_1+r_1 bq+r=bq1+r1
移项
b ( q − q 1 ) = r 1 − r b(q-q_1)=r_1-r b(qq1)=r1r
由于 r , r 1 r,r_1 r,r1 的值域都是 0 ≤ r < b 0\leq r<b 0r<b,所以二者相减的绝对值不超过 b b b


b ∣ q − q 1 ∣ = ∣ r 1 − r ∣ b|q-q_1|=|r_1-r| bqq1=r1r
解得
{ q = q 1 r = r 1 \begin{cases} q=q_1\\ r=r_1 \end{cases} {q=q1r=r1
证毕。

整数的很多基本性质都可以从定理 ( 4 ) (4) (4) 引导出来,本章最主要的内容都是在定理 ( 4 ) (4) (4) 的基础上建立。

定义 2 2 2 ( 2 ) (2) (2) 中的 q q q 叫做 a a a b b b 除所得到的不完全商 r r r 叫做 a a a余数


习题

证明定理 3 3 3​。


证明 3 ∣ n ( n + 1 ) ( 2 n + 1 ) 3|n(n+1)(2n+1) 3∣n(n+1)(2n+1),其中 n n n​ 是任意整数。

题解 n = 3 γ + r n=3\gamma+r n=3γ+r ( 0 ≤ r < 3 ) (0\leq r<3) (0r<3)

n ( n + 1 ) ( 2 n + 1 ) = ( 3 γ + r ) ( 3 γ + r + 1 ) ( 6 γ + 2 r + 1 ) n(n+1)(2n+1)=(3\gamma+r)(3\gamma+r+1)(6\gamma+2r+1) n(n+1)(2n+1)=(3γ+r)(3γ+r+1)(6γ+2r+1)

  1. r = 1 r=1 r=1,那么 2 r + 1 = 3 2r+1=3 2r+1=3 ,又 3 ∣ 6 γ , 3 ∣ 3 3|6\gamma,3|3 3∣6γ,3∣3 所以 3 ∣ ( 6 γ + 2 r + 1 ) 3|(6\gamma+2r+1) 3∣(6γ+2r+1)

所以, 3 ∣ n ( n + 1 ) ( 2 n + 1 ) 3|n(n+1)(2n+1) 3∣n(n+1)(2n+1)

  1. r = 2 r=2 r=2,那么 r + 1 = 3 r+1=3 r+1=3,又 3 ∣ 3 γ , 3 ∣ 3 3|3\gamma,3|3 3∣3γ,3∣3 所以 3 ∣ ( 3 γ + r + 1 ) 3|(3\gamma+r+1) 3∣(3γ+r+1)

所以, 3 ∣ n ( n + 1 ) ( 2 n + 1 ) 3|n(n+1)(2n+1) 3∣n(n+1)(2n+1)

  1. r = 0 r=0 r=0 3 ∣ n 3|n 3∣n,所以 3 ∣ n ( n + 1 ) ( n + 1 ) 3|n(n+1)(n+1) 3∣n(n+1)(n+1)

证毕


a x 0 + b y 0 ax_0+by_0 ax0+by0 是形如 a x + b y ax+by ax+by ( ( ( x , y x,y x,y 是任意整数, a , b a,b a,b 是两个不全为零的整数 ) ) )​ 的数中最小的正整数,证明
( a x 0 + b y 0 ) ∣ ( a x + b y ) (ax_0+by_0)|(ax+by) (ax0+by0)(ax+by)
题解
a x + b y = q 1 ( a x 0 + b y 0 ) + r 1 ( 0 ≤ r 1 < a x 0 + b y 0 ) ax+by=q_1(ax_0+by_0)+r_1\quad(0\leq r_1<ax_0+by_0) ax+by=q1(ax0+by0)+r1(0r1<ax0+by0)
可得
r 1 = a ( x − q 1 x 0 ) + b ( y − q 1 y 0 ) r_1=a(x-q_1x_0)+b(y-q_1y_0) r1=a(xq1x0)+b(yq1y0)
r 1 r_1 r1 满足 a x + b y ax+by ax+by 的形式,而 a x 0 + b y 0 ax_0+by_0 ax0+by0 是形如 a x + b y ax+by ax+by 的数中最小的正整数,设 ( a x 0 + b y 0 ) (ax_0+by_0) (ax0+by0) d d d

所以, r 1 r_1 r1 d d d 的倍数,设 r = q 2 d r=q_2d r=q2d,那么 a x + b y = q 1 d + q 2 d ax+by=q_1d+q_2d ax+by=q1d+q2d

显然 d ∣ ( a x + b y ) d|(ax+by) d(ax+by)

证毕。


a , b a,b a,b 是任意两个整数,且 b ≠ 0 b\neq0 b=0,证明:存在两个整数 s , t s,t s,t 使得
a = b s + t , ∣ t ∣ ≤ ∣ b ∣ 2 a=bs+t,\quad |t| \leq \frac{|b|}{2} a=bs+t,t2b
成立,并且当 b b b 是奇数的时候, s , t s,t s,t 是唯一存在的,当 b b b 是偶数的时候,结果如何?

题解 由定理 4 4 4 可知,对任意整数 a , b a,b a,b 都有
a = q b + r , 0 ≤ r < ∣ b ∣ a=qb+r,\quad 0\leq r<|b| a=qb+r,0r<b

  1. b b b 是正数

r ≤ b 2 r\leq\frac{b}{2} r2b,则 s = q , t = r s=q,t=r s=q,t=r

r ≥ b 2 r\geq \frac{b}{2} r2b ,则 a = ( q + 1 ) b + ( r − b ) a=(q+1)b+(r-b) a=(q+1)b+(rb),显然 ∣ r − b ∣ < b 2 |r-b|<\frac{b}{2} rb<2b s = q + 1 , t = r − b s=q+1,t=r-b s=q+1,t=rb

  1. b b b 是负数

r ≤ ∣ b 2 ∣ r\leq |\frac{b}{2}| r2b,则 s = q , t = r s=q,t=r s=q,t=r

r ≥ ∣ b 2 ∣ r\geq |\frac{b}{2}| r2b,则 a = ( q − 1 ) b + ( r + b ) a=(q-1)b+(r+b) a=(q1)b+(r+b),显然 ∣ r + b ∣ < b 2 |r+b|<\frac{b}{2} r+b<2b s = q − 1 , t = r + b s=q-1,t=r+b s=q1,t=r+b

b b b 为奇数, b 2 \frac{b}{2} 2b 向下取整,不存在 r = b 2 r=\frac{b}{2} r=2b s s s 只能取 q q q q − 1 q-1 q1 q + 1 q+1 q+1 中的一个。

b b b 为偶数,存在 r = b 2 r=\frac{b}{2} r=2b,所以当 r = b 2 r=\frac{b}{2} r=2b时, s s s 既能取 q q q,又能取 q − 1 q-1 q1 q + 1 q+1 q+1


检查一个整数 n n n 是否能被 3 3 3​ 整除。

题解

对于任意一个整数 n n n,都可以写成:
n = a 0 × 1 0 0 + a 1 × 1 0 1 + ⋯ + a n × 1 0 n n=a_0\times10^0+a_1\times 10^1+\dots+a_n\times10^n n=a0×100+a1×101++an×10n
已知 1 0 i 10^i 10i 除以 3 3 3 的余数是 1 1 1,所以 a i × 1 0 i a_i\times10^i ai×10i 除以 3 3 3 的余数等价于 a i a_i ai 除以 3 3 3 的余数。

那么 n n n 除以 3 3 3 的余数,等价于 ∑ i = 1 n a [ i ] \sum_{i=1}^n a[i] i=1na[i] 除以 3 3 3 的余数。

所以 n n n 能被 3 3 3 整除,等价于 ∑ i = 1 n a [ i ] \sum_{i=1}^{n}a[i] i=1na[i] 能被 3 3 3 整除。

证毕


检查一个整数 n n n 是否能被 4 4 4​ 整除。

题解

对于任意一个整数 n n n,都可以写成:
n = a 0 × 1 0 0 + a 1 × 1 0 1 + ⋯ + a n × 1 0 n n=a_0\times10^0+a_1\times 10^1+\dots+a_n\times10^n n=a0×100+a1×101++an×10n
已知 10 10 10 除以 4 4 4 的余数是 2 2 2,已知 1 0 i 10^i 10i ( i ≥ 2 ) (i\geq2) (i2)除以 4 4 4 的余数是 0 0 0

所以 n n n 除以 4 4 4 的余数取决于于 a 0 + a 1 × 1 0 1 a_0+a_1\times10^1 a0+a1×101 除以 4 4 4 的余数。

如果 a 0 + a 1 × 1 0 1 a_0+a_1\times10^1 a0+a1×101 除以 4 4 4 的余数是 0 0 0,那么 n n n 能被 4 4 4 整除

换句话说, n n n 是否能被 4 4 4 整除,取决于 n n n 的最后两位能否被 4 4 4 整除。

证毕


检查一个整数 n n n 是否能被 6 6 6​ 整除。

题解

先检查最后一位数是否是偶数(是否能被 2 2 2 整除),再利用第五题的结论,检查是否被 3 3 3 整除。

证毕


检查一个整数 n n n 是否能被 7 7 7 整除。

同余做法

等价于直接判断 n   m o d   7 n\:mod\:7 nmod7 是否为 0 0 0

方法是将数字读入到字符串内,然后从最高位开始对 7 7 7 取模然后乘以 10 10 10,再下一位。

最后得到的数为 0 0 0,就说明是 7 7 7 的倍数。

时间复杂度 O ( n ) O(n) O(n) n n n 代表数位个数)。

这个方法是通用的,如果时间复杂度允许 7 7 7 可以换成任意的数。

string s;
cin >> s;
int now = 0;
for (int j = 0; j < s.size(); j++) {
   now = now * 10 + (s[j] - '0');
   now %= 7;
}
if(now == 0) cout << "Yes" << endl;
else cout << "No" << endl;
  • 17
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

louisdlee.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值