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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于云开发快速搭建智能名片小程序

熏风徐来&#xff0c;麦穗摇曳&#xff1b;麦类等夏熟作物生长旺盛&#xff0c;籽粒灌浆渐趋饱满&#xff0c;但尚未完全成熟&#xff0c;故称“小满”。 今日小满&#xff0c;基于云开发快速搭建智能名片小程序&#xff0c;发文以记录输入和输出过程。 一、功能总览&#xff…

数据结构(五)队列

文章目录 一、概念二、逻辑结构&#xff1a;线性结构三、存储结构&#xff08;一&#xff09;顺序队列&#xff08;二&#xff09;循环队列1. 结构体定义2. 创建队列&#xff08;1&#xff09;函数定义&#xff08;2&#xff09;注意点&#xff08;3&#xff09;代码实现 3. 入…

代码随想录算法训练营第二十天| 617. 合并二叉树、654. 最大二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树

[LeetCode] 617. 合并二叉树 [LeetCode] 617. 合并二叉树 文章解释 [LeetCode] 617. 合并二叉树 视频解释 题目: 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另…

学习100个Unity Shader (18) --- 几何着色器(Geometry Shader)

文章目录 概述编写格式举例应用举例&#xff08;用预制体球的每个顶点画一个立方体&#xff09;参考 概述 vertex shader --> [geometry shader] --> fragment shader。[]: 可选阶段。输入图元 —> geometry shader —> 其他图元 编写格式 [maxcertexcount(N)] …

什么是访问越界(C语言数组、指针、结构体成员访问越界)

在C语言中&#xff0c;访问越界&#xff08;Access Violation 或 Out-of-Bounds Access&#xff09;是指程序试图访问的内存位置超出了其合法或已分配的范围。这通常发生在数组、指针或其他内存结构的使用中。 案例&#xff1a; #include <stdio.h>//数组 //Visiting b…

基于Django的美团药品数据分析与可视化系统,有多用户功能,可增删改查数据

背景 随着电子商务和健康产业的迅速发展&#xff0c;药品行业数据的分析和可视化变得愈发重要。基于Django的美团药品数据分析与可视化系统的研究背景凸显了对药品数据的深入挖掘和分析的需求。该系统不仅具备多用户功能&#xff0c;允许不同角色的用户进行数据管理和分析&…

python列表生成式的妙用:区间内奇数求和

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、案例背景 三、实现步骤 四、案例验证 五、总结 一、引言 在Python编程中&a…

DuckDB 是个值得学习的系统

关于 DuckDB 的一些科普和评价&#xff1a; https://www.zhihu.com/question/438725169/answer/3255729583 DuckDB 的插件体系&#xff1a; https://duckdb.org/docs/extensions/overview.html 我认为&#xff0c;作为一个软件&#xff0c;引入”插件“是商业成功的必要条件…

Java三种方法实现多线程,继承Thread类,实现Runnable接口,实现Callable接口

目录 线程&#xff1a; 继承Thread类&#xff1a; 实现Runnable类&#xff1a; 实现Callable接口&#xff1a; 验证多线程&#xff1a; 线程&#xff1a; 定义&#xff1a;进程可以同时执行多个任务&#xff0c;每个任务就是线程。举个例子&#xff1a;一个Java程序&#…

力扣刷题--LCR 075. 数组的相对排序【简单】

题目描述 给定两个数组&#xff0c;arr1 和 arr2&#xff0c; arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序&#xff0c;使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 …

实现UI显示在最上面的功能

同学们肯定遇到过UI被遮挡的情况&#xff0c;那如何让UI显示在最前面呢&#xff0c;先看效果 原理:UI的排序方式是和unityHierarchy窗口的层级顺序有关的&#xff0c;排序在下就越后显示&#xff0c;所以按照这个理论&#xff0c;当我们鼠标指到UI的时候把层级设置到最下层就好…

不一样的2024

当我们继续往前走时&#xff0c;发现身边的事物不再那么的陌生&#xff0c;也不再那边多的阻碍&#xff0c;不管怎么&#xff0c;2024将会不一样。 当我们走进审批流时&#xff0c;全面石荒芜的&#xff0c;所以自己构建了一个体系。 当我们转向开源时&#xff0c;发现开源与…

nacos(一) 安装

一 nacos 1.4.7安装 安装 nacos-server nacos官方下载 说明&#xff1a; 下载1.4.7和2.3.2版本,本专栏后续以1.4.7为例进行讲解补充&#xff1a; nacos-server服务端和nacos-client客户端附加&#xff1a; spring 版本、nacos-server、nacos-client版本要适配思考&#xf…

【Redis】Widows 和 Linux 下使用 Redis

Redis 简述 1.缓存 缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段,现代 CPU 越来越快的一个重要因素就是使用了更多的缓存,在复杂的软件设计中,缓存几乎无处不在。大型网站架构设计在很多方面都使用了缓存设计。 2.Redis Redis …

同元软控专业模型库系列—电气篇

一、引言 电气作为研究电能产生、传输、分配、使用和控制的专业领域&#xff0c;在航空航天、能源电力、船舶推进、轨道交通等众多行业中占据着举足轻重的地位&#xff0c;应用范围涉及电力工程、电子通信、自动化控制等&#xff0c;如电池充电管理芯片设计、航天器伺服系统、…

GitHub Copilot如何订阅使用

1.Copilot是什么 Copilot是由Github和OpenAI联合开发的一个基于人工智能大模型的代码写作工具。 我们都知道Github是世界上拥有开源项目及代码最多的一个平台&#xff0c;有了这么一个得天独厚的资源&#xff0c;Github联合OpenAI喂出了Copilot。经过不断地更新迭代&#xff…

Word整理论文参考文献

1.安装Zotero软件 2.安装Zotero的Chrome网站插件&#xff0c;并将插件固定到浏览器 3.安装Word的Zotero插件 4.在DBLP网站https://dblp.org/search 搜索需要添加的参考文献->点击BibTex->点击网页右上角的Zotero符号&#xff08;即第二步所指的符号&#xff09;->至…

红队攻防渗透技术实战流程:红队目标上线之webshell工具魔改

红队攻防免杀实战 1. 红队目标上线-Webshell免杀-源码魔改1.2 Webshell-代码混淆&流量绕过&工具原理1.2 通过对冰蝎的数据包分析:1.2魔改冰蝎-JAR反编译打包构建1.2魔改冰蝎-防识别-打乱特征指纹1.2魔改冰蝎-防查杀-新增加密协议1. 红队目标上线-Webshell免杀-源码魔改…

[转载]同一台电脑同时使用GitHub和GitLab

原文地址&#xff1a;https://developer.aliyun.com/article/893801 简介&#xff1a; 工作中我们有时可能会在同一台电脑上使用多个git账号&#xff0c;例如&#xff1a;公司的gitLab账号&#xff0c;个人的gitHub账号。怎样才能在使用gitlab与github时&#xff0c;切换成对应…

民国漫画杂志《时代漫画》第27期.PDF

时代漫画27.PDF: https://url03.ctfile.com/f/1779803-1248635258-b6a842?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!