1. 0.2 整数的性质

📜 原文
📖 逐步解释
∑ 公式拆解
💡 数值示例
⚠️ 易错点
📝 总结
🎯 存在目的
🧠 直觉心智模型
💭 直观想象

11. 0.2 整数的性质

📜 [原文1]

以下整数 $\mathbb{Z}$ 的性质(许多在初等算术中很熟悉)将在第 8 章的环论中在更一般的背景下得到证明,但在第一部分中需要使用它们(当然,这些性质的环论证明都不会依赖于群论)。

📖 [逐步解释]

这段话是引言,它告诉我们接下来要讲的内容是关于整数的基本性质。这里的整数集合用符号 $\mathbb{Z}$ 表示,它包括所有正整数、负整数和零(..., -3, -2, -1, 0, 1, 2, 3, ...)。这些性质可能我们在小学和中学数学中已经学过,比如加减乘除、质数、公约数等。作者提到,这些性质虽然看起来很基础,但它们在更高级的数学理论——环论(将在本书第 8 章学习)——中会得到更普遍、更抽象的证明。但是,在学习前面的章节(也就是第一部分,主要关于群论)时,我们需要先直接使用这些性质作为已知事实。同时,作者特意强调,后面环论中对这些整数性质的证明,不会反过来依赖于我们现在要学习的群论知识。这保证了整个理论体系的逻辑是自洽的,没有循环论证。简而言之,就是“我们先用着这些工具,后面再告诉你这些工具的原理,并且造工具的过程没用我们现在要干的活儿”。

∑ [公式拆解]
  • $\mathbb{Z}$: 这是德国数学家戴德金引入的符号,来源于德语单词 "Zahlen",意为“数字”或“整数”。在数学中,它特指整数集合,包括 $\{..., -3, -2, -1, 0, 1, 2, 3, ...\}$。
💡 [数值示例]
  • 整数 $\mathbb{Z}$ 的例子:-100, -5, 0, 1, 27, 999 都是整数。
  • 初等算术中熟悉的性质:比如,我们知道 $2+3=5$(加法),$7 \times 8 = 56$(乘法),任何整数乘以 0 都等于 0。这些都是我们将在本节中回顾和形式化的性质的一部分。
⚠️ [易错点]
  1. 逻辑依赖关系:初学者可能会混淆不同数学理论之间的依赖关系。这里需要明确的是,第一部分(群论)依赖于本节的整数性质,而第八部分(环论)会证明这些性质,但证明过程不依赖于群论。这是一个单向的逻辑链条,避免了循环论证的陷阱。
  2. $\mathbb{Z}$ 的范围:要记住 $\mathbb{Z}$ 不仅仅是正整数(自然数),它包含了 0 和所有负整数。
📝 [总结]

本段是引言,阐述了本节内容的重要性、来源以及在本书知识体系中的位置。它告诉读者,即将介绍的整数性质是后续学习的基础工具,其严格证明将在后续章节给出,且逻辑上不存在循环依赖。

🎯 [存在目的]

本段的目的是为读者设定一个清晰的学习路径和期望。它让读者知道,虽然这些性质很基础,但在抽象代数的学习中它们是不可或缺的基石。同时,通过预告后续章节会提供证明,作者建立了一种“先使用,后证明”的学习契约,使得读者可以安心地在当前阶段接受并应用这些性质。

🧠 [直觉心智模型]

可以把学习抽象代数想象成盖一座大楼。本节介绍的整数性质就像是地基和最底层的砖块。虽然它们看起来很普通,但没有它们,上面的宏伟建筑(群论、环论等)就无法建立起来。作者在这里就是告诉我们:“我们要开始打地基了。这些地基材料(整数性质)你们可能都见过,我们先直接用。等大楼盖到高层(第8章),我们再回过头来用更先进的工具和理论(环论)来分析这些地基材料本身是怎么造出来的,而且我们保证,分析地基材料的时候,不会用到楼上才有的东西。”

💭 [直观想象]

想象你正在玩一个复杂的策略游戏。游戏一开始,系统会直接给你一些基础单位和资源(比如士兵、金币)。你不需要知道这些士兵是怎么训练出来的,或者金币是怎么铸造的,你就可以直接用它们来探索世界、打怪升级(学习群论)。游戏进行到后期,你解锁了更高级的科技树(环论),你才会有能力去研究和制造这些基础单位和资源。这个引言就像是游戏开始时的教程提示,告诉你:“这些是你的初始资源,放心用吧!它们的制造方法以后你自然会学到。”

1.1 (1) ($\mathbb{Z}$ 的良序性 (Well Ordering of $\mathbb{Z}$))

📜 [原文2]

如果 $A$ 是 $\mathbb{Z}^{+}$ 的任何非空子集,则存在某个元素 $m \in A$,使得对于所有 $a \in A$,都有 $m \leq a$($m$ 称为 $A$ 的最小元素 (minimal element))。

📖 [逐步解释]

这条性质叫做良序性,也叫良序原理(Well-Ordering Principle)。它只针对正整数集合 $\mathbb{Z}^{+}$。

  • $\mathbb{Z}^{+}$:这是指所有正整数的集合,即 $\{1, 2, 3, 4, ...\}$。注意,它不包括 0 和负整数。
  • 非空子集 $A$:意思是 $A$ 是 $\mathbb{Z}^{+}$ 的一部分,并且 $A$ 里面至少有一个元素。例如,$A=\{5, 2, 8\}$ 就是 $\mathbb{Z}^{+}$ 的一个非空子集。$A=\{10, 20, 30, ...\}$ 也是。
  • 存在某个元素 $m \in A$:这句话的意思是,我们一定能在集合 $A$ 内部找到一个特殊的元素,我们叫它 $m$。
  • 使得对于所有 $a \in A$,都有 $m \leq a$:这个特殊元素 $m$ 的特点是,它小于或等于 $A$ 中的任何一个元素(包括它自己)。换句话说,它就是 $A$ 中最小的那个数。
  • $m$ 称为 $A$ 的最小元素:这就是给这个特殊的 $m$ 起的名字。

所以,整句话连起来的意思就是:任何一堆不为空的正整数集合,里面一定有一个最小的数。

这个性质看起来非常理所当然,但它却是数学归纳法等重要证明方法的基础,是一个非常深刻的公理。

∑ [公式拆解]
  • $\mathbb{Z}^{+}$: 表示正整数集 $\{1, 2, 3, ...\}$。上标 "+" 代表 "positive"。
  • $A$: 一个集合,这里特指 $\mathbb{Z}^{+}$ 的一个子集。
  • $\in$: "属于"符号。$m \in A$ 读作 "$m$ 属于 $A$" 或 "$m$ 是 $A$ 的一个元素"。
  • $\leq$: "小于或等于"符号。
  • 非空子集 (non-empty subset):一个集合 $A$ 是另一个集合 $B$ 的子集,如果 $A$ 中所有元素都属于 $B$。如果 $A$ 至少包含一个元素,那么它就是非空的。
💡 [数值示例]
  • 示例 1:假设集合 $A = \{10, 5, 23, 101\}$。这是一个 $\mathbb{Z}^{+}$ 的非空子集。根据良序性,它必须有一个最小元素。我们可以清楚地看到,这个最小元素是 $m=5$,因为 $5 \leq 10$, $5 \leq 5$, $5 \leq 23$, $5 \leq 101$。5 小于或等于 $A$ 中的所有元素。
  • 示例 2:假设集合 $B$ 是所有大于 100 的偶数。$B = \{102, 104, 106, ...\}$。这也是一个 $\mathbb{Z}^{+}$ 的非空子集,尽管它有无穷多个元素。根据良序性,它也必须有一个最小元素。这个最小元素是 $m=102$。
  • 示例 3:假设集合 $C$ 是所有能被 7 整除的正整数。$C = \{7, 14, 21, ...\}$。它的最小元素是 $m=7$。
⚠️ [易错点]
  1. 必须是正整数集 $\mathbb{Z}^{+}$:良序性对其他数集不一定成立。
  2. 整数集 $\mathbb{Z}$:集合 $\{..., -3, -2, -1\}$ 是 $\mathbb{Z}$ 的非空子集,但它没有最小元素,因为你可以一直找到更小的负整数。
  3. 正有理数集 $\mathbb{Q}^{+}$:集合 $D = \{x \in \mathbb{Q} \mid x > 1\} = \{1.1, 1.01, 1.001, ...\}$。这个集合没有最小元素。你可以随时找到一个比当前最小的数更接近 1 的数,比如,如果你认为 $1.0001$ 是最小的,我总能找到 $(1+1.0001)/2 = 1.00005$ 这个更小的数。
  4. 必须是非空:空集(不含任何元素的集合)没有元素,所以自然谈不上最小元素。良序性要求集合必须是非空的。
📝 [总结]

良序性是正整数集 $\mathbb{Z}^{+}$ 的一个基本公理,它声明任何非空的正整数子集都必定包含一个最小的元素。这个性质看似简单,却是许多数学证明(尤其是数学归纳法)的基石。

🎯 [存在目的]

这条性质的存在是为了给基于正整数的推理提供一个坚实的出发点。很多时候,我们需要在一个无穷的过程中找到一个“起点”或者“最简单的情况”,良序性保证了这样的起点总是存在的。例如,在证明一个关于所有正整数的命题时,我们可以假设这个命题对某些正整数不成立,然后利用良序性找到那个使得命题不成立的“最小的正整数”,并由此导出矛盾,从而证明命 ઉ题必须对所有正整数都成立。这就是反证法和良序性结合的威力。

🧠 [直觉心智模型]

想象一条无限长的楼梯,每一级台阶都标着一个正整数 1, 2, 3, ...。现在,你让一群人(一个非空子集)站到这个楼梯上,每个人占据一级台阶。良序性告诉你,这群人里,一定有一个人站的位置最低(即台阶编号最小)。不管这群人有多少,只要不是一个人都没有,就总能找到站得最低的那个人。

💭 [直观想象]

想象你在沙滩上捡贝壳,但这些贝壳上都刻着不同的正整数。你捡了一捧贝壳(一个非空的子集)。良序性保证,只要你手里至少有一个贝壳,那么你低头看,总能找到一个上面数字最小的贝壳。你不可能永远在找“更小”的贝壳而找不到尽头。

1.2 (2) 整除

📜 [原文3]

如果 $a, b \in \mathbb{Z}$ 且 $a \neq 0$,如果存在一个元素 $c \in \mathbb{Z}$ 使得 $b=ac$,则我们说 $a$ 整除 (divides) $b$。在这种情况下,我们记作 $a \mid b$;如果 $a$ 不整除 $b$,则记作 $a \nmid b$。

📖 [逐步解释]

这里定义了数学中一个非常核心的概念:整除

  • 如果 $a, b \in \mathbb{Z}$ 且 $a \neq 0$:这句话设定了前提条件。我们讨论的两个数 $a$ 和 $b$ 都必须是整数。特别重要的是,用来做除数的 $a$ 不能是 0。这是因为在数学中,除以 0 是没有意义的。
  • 如果存在一个元素 $c \in \mathbb{Z}$ 使得 $b=ac$:这是整除的核心定义。我们说“$a$ 整除 $b$”,意思就是,我们能找到一个整数 $c$,让 $a$ 乘以这个整数 $c$ 恰好等于 $b$。换句话说,$b$ 是 $a$ 的整数倍。这个整数 $c$ 就是我们常说的“商”。
  • 则我们说 $a$ 整除 $b$:这是给这个关系起的名字。
  • 我们记作 $a \mid b$:这是一个专门的数学符号,中间的竖线 | 就读作“整除”。所以 $a \mid b$ 读作“$a$ 整除 $b$”。
  • 如果 $a$ 不整除 $b$,则记作 $a \nmid b$:这是“不整除”的符号,就是在那条竖线上加一个斜杠,表示否定。

所以,"a divides b" 意味着 b 是 a 的一个倍数,或者说 a 是 b 的一个因子。

∑ [公式拆解]
  • $a, b \in \mathbb{Z}$: $a$ 和 $b$ 都是整数。
  • $a \neq 0$: $a$ 不等于零。
  • $c \in \mathbb{Z}$: $c$ 也是一个整数。
  • $b = ac$: $b$ 等于 $a$ 乘以 $c$。这是判断整除是否成立的检验方程
  • $a \mid b$: 符号记法,表示 "$a$ 整除 $b$"。
  • $a \nmid b$: 符号记法,表示 "$a$ 不整除 $b$"。
💡 [数值示例]
  • 示例 1(整除):$a=4, b=20$。我们说 $4 \mid 20$(4 整除 20),因为我们可以找到一个整数 $c=5$,使得 $20 = 4 \times 5$。这里的 $c=5$ 是一个整数,所以定义成立。
  • 示例 2(整除):$a=-3, b=12$。我们说 $-3 \mid 12$(-3 整除 12),因为我们可以找到整数 $c=-4$,使得 $12 = (-3) \times (-4)$。
  • 示例 3(不整除):$a=5, b=21$。我们说 $5 \nmid 21$(5 不整除 21),因为我们找不到任何一个整数 $c$,使得 $21 = 5 \times c$。虽然 $21 = 5 \times 4.2$,但 4.2 不是整数,所以不满足定义。
  • 示例 4(边界情况):$a=7, b=0$。我们说 $7 \mid 0$(7 整除 0),因为我们可以找到整数 $c=0$,使得 $0 = 7 \times 0$。实际上,任何非零整数都能整除 0。
  • 示例 5(边界情况):$a=1, b=15$。我们说 $1 \mid 15$(1 整除 15),因为 $15 = 1 \times 15$。实际上,1 可以整除任何整数。
⚠️ [易错点]
  1. $a$ 和 $b$ 的位置:初学者很容易混淆 $a \mid b$ 和 $b \mid a$。$a \mid b$ 是 "$a$ 整除 $b$",意味着 $a$ 是因子(较小,从绝对值上说),$b$ 是倍数。可以记作 “$a$ 能除 $b$”。不要和分数 $a/b$ 混淆。
  2. 除数不能为零:定义中明确规定 $a \neq 0$。我们从不讨论 $0$ 是否能整除其他数。这是因为如果 $a=0$,方程 $b = 0 \times c$ 对于 $b \neq 0$ 无解;对于 $b=0$ 有无穷多解,这都会导致理论上的麻烦。
  3. 商 $c$ 必须是整数:这是最关键的一点。整除是在整数的世界里讨论的。如果商是小数或分数,就不能叫整除。
📝 [总结]

整除是描述两个整数之间倍数关系的一个精确术语。当一个非零整数 $a$ 可以通过乘以另一个整数 $c$ 得到整数 $b$ 时,我们称 $a$ 整除 $b$,记作 $a \mid b$。这个定义是数论和抽象代数中许多其他概念的基础。

🎯 [存在目的]

定义“整除”是为了在整数集合 $\mathbb{Z}$ 上建立一个基本的结构关系。它让我们能够讨论因数、倍数、素数、合数、最大公约数等一系列重要概念。没有整除这个概念,整个数论的大厦就无从建起。它是我们分析整数内部结构的最基本工具之一。

🧠 [直觉心智模型]

想象整数是一排排的砖块。说“$a$ 整除 $b$” ($a \mid b$),就好比是问:“我能不能用长度为 $a$ 的尺子,不多不少、正好量完长度为 $b$ 的距离?” 如果可以,那么就整除。例如,用一把 3 米长的尺子,可以正好量完 12 米的距离(量 4 次),所以 $3 \mid 12$。但是用 3 米的尺子去量 10 米的距离,量 3 次还剩 1 米,量不完,所以 $3 \nmid 10$。

💭 [直观想象]

想象你有一堆糖果($b$ 颗),你想把它们平均分给一些小朋友($a$ 个)。如果分完后,每个小朋友手里的糖果数量($c$)都是整数,而且没有剩下任何糖果,那么就说 $a$ 整除 $b$。比如,20 颗糖果分给 4 个小朋友,每人 5 颗,正好分完,所以 $4 \mid 20$。但 21 颗糖果分给 5 个小朋友,每人 4 颗后还剩 1 颗,分不均,所以 $5 \nmid 21$。

1.3 (3) 最大公约数 (g.c.d.)

📜 [原文4]

如果 $a, b \in \mathbb{Z}-\{0\}$,则存在一个唯一的正整数 $d$,称为 $a$ 和 $b$ 的最大公约数 (greatest common divisor)(或 g.c.d. of $a$ and $b$),满足:

(a) $d \mid a$ 且 $d \mid b$(所以 $d$ 是 $a$ 和 $b$ 的一个公约数 (common divisor)),并且

(b) 如果 $e \mid a$ 且 $e \mid b$,则 $e \mid d$(所以 $d$ 是最大的公约数)。

$a$ 和 $b$ 的最大公约数将记作 $(a, b)$。如果 $(a, b)=1$,我们称 $a$ 和 $b$ 是互素的 (relatively prime)。

📖 [逐步解释]

这里定义了最大公约数,通常缩写为 g.c.d.。

  • 如果 $a, b \in \mathbb{Z}-\{0\}$:前提是 $a$ 和 $b$ 都是非零整数。讨论 0 的最大公约数有时会有特殊约定,但这里为了简化,先排除了 0。
  • 则存在一个唯一的正整数 $d$:这是结论。对于任意两个非零整数 $a$ 和 $b$,总能找到一个并且只有一个符合下面条件的正整数 $d$。
  • 称为 $a$ 和 $b$ 的最大公约数:这是 $d$ 的名字。
  • (a) $d \mid a$ 且 $d \mid b$:这是第一个条件。$d$ 必须既能整除 $a$ 又能整除 $b$。满足这个条件的数就叫做 $a$ 和 $b$ 的公约数
  • (b) 如果 $e \mid a$ 且 $e \mid b$,则 $e \mid d$:这是第二个条件,也是这个定义最精妙的地方。它说,如果还有任何其他的公约数 $e$($e$ 也能同时整除 $a$ 和 $b$),那么这个 $e$ 必然能整除 $d$。
  • (所以 $d$ 是最大的公约数):这句话解释了为什么条件 (b) 意味着“最大”。在整除的世界里,“能被所有同类整除”的那个数就是“最大”的。如果 $e \mid d$,那么 $|e| \leq |d|$(因为 $d=ec$,对于非零整数 $e,c$,则 $|d|=|e||c| \ge |e|$)。所以,任何其他的公约数 $e$ 的绝对值都不会超过 $d$。由于我们规定 $d$ 是正数,所以 $d$ 确实是所有公约数中数值最大的那个。这个定义比“数值上最大”更深刻,因为它用“整除”关系来定义“最大”,这在更抽象的代数结构中依然有效。
  • 记作 $(a, b)$:这是最大公约数的标准符号。例如,12 和 18 的最大公约数是 6,记作 $(12, 18) = 6$。
  • 如果 $(a, b)=1$,我们称 $a$ 和 $b$ 是互素的:这是一个非常重要的特殊情况。如果两个数的最大公约数是 1,意味着它们除了 1 和 -1 之外,没有其他共同的因子。这样的两个数关系很“纯净”,因此称它们为互素互质
∑ [公式拆解]
  • $\mathbb{Z}-\{0\}$: 表示所有非零整数的集合。
  • g.c.d.: Greatest Common Divisor 的缩写。
  • $d \mid a$: $d$ 整除 $a$。
  • $(a, b)$: 符号,表示 $a$ 和 $b$ 的最大公约数。
  • 互素 (relatively prime): 当 $(a, b)=1$ 时的称呼。
💡 [数值示例]
  • 示例 1:$a=30, b=42$。
  • $a$ 的约数有: $\pm 1, \pm 2, \pm 3, \pm 5, \pm 6, \pm 10, \pm 15, \pm 30$。
  • $b$ 的约数有: $\pm 1, \pm 2, \pm 3, \pm 6, \pm 7, \pm 14, \pm 21, \pm 42$。
  • 公约数是它们共有的约数:$\{\pm 1, \pm 2, \pm 3, \pm 6\}$。
  • 我们要找一个的 g.c.d. $d$。
  • 在正公约数 $\{1, 2, 3, 6\}$ 中,6 是数值最大的。我们来验证 6 是否满足定义:
  • (a) $6 \mid 30$ (因为 $30=6 \times 5$) 且 $6 \mid 42$ (因为 $42=6 \times 7$) 。条件满足。
  • (b) 其他的公约数 $e \in \{\pm 1, \pm 2, \pm 3\}$ 是否都能整除 6?
  • $1 \mid 6$ (是),$-1 \mid 6$ (是),$2 \mid 6$ (是),$-2 \mid 6$ (是),$3 \mid 6$ (是),$-3 \mid 6$ (是)。都满足。
  • 所以,$(30, 42) = 6$。
  • 示例 2(互素):$a=10, b=21$。
  • $a$ 的正约数: $\{1, 2, 5, 10\}$。
  • $b$ 的正约数: $\{1, 3, 7, 21\}$。
  • 唯一的正公约数是 1。所以 $d=1$。
  • (a) $1 \mid 10$ 且 $1 \mid 21$。满足。
  • (b) 唯一的公约数就是 $\pm 1$,$1 \mid 1$ 且 $-1 \mid 1$。也满足。
  • 所以,$(10, 21)=1$,我们说 10 和 21 是互素的
⚠️ [易错点]
  1. 定义的理解:用“所有公约数都能整除它”来定义最大公约数,比用“数值最大的公约数”更本质。在初等数学中两者等价,但在高等代数中前者更有用。要习惯这种用“整除关系”来描述大小的思维方式。
  2. 符号 $(a, b)$:这个括号加逗号的记号在数学中用途很多。它可以表示坐标平面上的一个点,也可以表示一个开区间。在这里,它特指最大公约数。必须根据上下文来判断其含义。
  3. g.c.d. 总是正的:根据定义,我们通常取最大公约数为正整数。尽管 -6 也能同时整除 30 和 42,但我们选择正的那个,即 6。
📝 [总结]

两个非零整数 $a$ 和 $b$ 的最大公约数 $(a, b)$ 是一个唯一正整数 $d$,它满足两个条件:1. $d$ 是 $a$ 和 $b$ 的公约数;2. $a$ 和 $b$ 的任何其他公约数都能整除 $d$。如果最大公约数是 1,则称这两个数互素

🎯 [存在目的]

最大公约数是数论中的核心概念之一。它的存在允许我们:

  1. 化简分数:化简分数 $\frac{a}{b}$ 的过程,就是分子分母同时除以它们的最大公约数 $(a,b)$。
  2. 解决丢番图方程:形如 $ax+by=c$ 的整数方程,其是否有解就取决于 $(a,b)$ 是否能整除 $c$。
  3. 推广到更一般的代数结构:在多项式环、高斯整数环等更抽象的结构中,最大公约数的概念依然存在且非常重要,它帮助我们理解这些结构中的“因子分解”性质。
🧠 [直觉心智模型]

想象有两个长度分别为 $a$ 和 $b$ 的木棍。你想找到一把尽可能长的尺子 $d$,这把尺子既能不多不少地量完木棍 $a$,也能不多不少地量完木棍 $b$。这把最长的尺子的长度,就是 $a$ 和 $b$ 的最大公约数。

条件(b)的含义是:如果你找到了另外一把更短的尺子 $e$ 也能同时量完 $a$ 和 $b$,那么这把短尺子 $e$ 一定能量完那把最长的尺子 $d$。

💭 [直观想象]

想象一个 $a \times b$ 的矩形地砖。你想要用同样大小的正方形瓷砖来铺满它,要求用的正方形瓷砖边长尽可能大,而且不能切割。那么,这个最大的正方形瓷砖的边长,就是 $a$ 和 $b$ 的最大公约数 $d$。任何其他尺寸的、能铺满这个矩形的小正方形瓷砖,其边长 $e$ 一定能被 $d$ 整除。例如,一个 $30 \times 42$ 的房间,你可以用 $6 \times 6$ 的地砖完美铺满。你也可以用 $1 \times 1$, $2 \times 2$ 或 $3 \times 3$ 的地砖铺满,但 $6 \times 6$ 是能用的最大正方形尺寸。并且注意,$1, 2, 3$ 都能整除 6。

1.4 (4) 最小公倍数 (l.c.m.)

📜 [原文5]

如果 $a, b \in \mathbb{Z}-\{0\}$,则存在一个唯一的正整数 $l$,称为 $a$ 和 $b$ 的最小公倍数 (least common multiple)(或 l.c.m. of $a$ and $b$),满足:

(a) $a \mid l$ 且 $b \mid l$(所以 $l$ 是 $a$ 和 $b$ 的一个公倍数 (common multiple)),并且

(b) 如果 $a \mid m$ 且 $b \mid m$,则 $l \mid m$(所以 $l$ 是最小的公倍数)。

两个整数 $a$ 和 $b$ 的最大公约数 $d$ 与最小公倍数 $l$ 之间的关系由 $dl=ab$ 给出。

📖 [逐步解释]

这里定义了与最大公约数相对偶的概念:最小公倍数,缩写为 l.c.m.。

  • 如果 $a, b \in \mathbb{Z}-\{0\}$:前提同样是两个非零整数。
  • 则存在一个唯一的正整数 $l$:结论是,对于 $a$ 和 $b$,总能找到一个且仅有一个满足下面条件的正整数 $l$。
  • 称为 $a$ 和 $b$ 的最小公倍数:这是 $l$ 的名字。
  • (a) $a \mid l$ 且 $b \mid l$:这是第一个条件。$l$ 必须既能被 $a$ 整除,也能被 $b$ 整除。也就是说,$l$ 是 $a$ 和 $b$ 的公倍数
  • (b) 如果 $a \mid m$ 且 $b \mid m$,则 $l \mid m$:这是第二个条件,和 g.c.d. 的定义非常对称。它说,如果还有任何其他的公倍数 $m$($m$ 也能同时被 $a$ 和 $b$ 整除),那么这个 $m$ 必然能被 $l$ 整除(即 $m$ 是 $l$ 的倍数)。
  • (所以 $l$ 是最小的公倍数):这句话解释了为什么条件(b)意味着“最小”。如果任何其他公倍数 $m$ 都是 $l$ 的倍数,那么 $|m| \ge |l|$。由于我们规定 $l$ 是正数,那么 $l$ 就是所有正的公倍数中数值最小的那个。同样,这个定义比“数值上最小”更深刻。
  • 关系式 $dl=ab$:这是一个非常重要且有用的公式,揭示了最大公约数 $d=(a,b)$ 和最小公倍数 $l$(通常记作 $[a,b]$)之间的简单关系。它说,两个数的最大公约数和最小公倍数的乘积,恰好等于这两个数本身的乘积。(严格来说,是等于它们乘积的绝对值,即 $dl = |ab|$,但由于这里 $a,b$ 可以是负数,而 $d,l$ 都取正,所以 $dl=|ab|$ 更准确。不过在多数情况下,我们处理正整数,就简化为 $dl=ab$)。这个公式使得我们只要算出 g.c.d.,就能立刻得到 l.c.m.,反之亦然。
∑ [公式拆解]
  • l.c.m.: Least Common Multiple 的缩写。
  • $a \mid l$: $a$ 整除 $l$。
  • $dl=ab$: 最大公约数 $d$ 乘以最小公倍数 $l$ 等于 $a$ 乘以 $b$。更准确的形式是 $d \cdot l = |a \cdot b|$。
💡 [数值示例]
  • 示例 1:$a=12, b=18$。
  • $a$ 的正倍数:$\{12, 24, 36, 48, 60, 72, ...\}$。
  • $b$ 的正倍数:$\{18, 36, 54, 72, 90, ...\}$。
  • 正的公倍数是它们共有的倍数:$\{36, 72, 108, ...\}$。
  • 我们要找一个的 l.c.m. $l$。
  • 在这些正公倍数中,36 是数值最小的。我们验证 36 是否满足定义:
  • (a) $12 \mid 36$ (因为 $36=12 \times 3$) 且 $18 \mid 36$ (因为 $36=18 \times 2$) 。条件满足。
  • (b) 其他的公倍数 $m$ (比如 72, 108) 是否都能被 36 整除?
  • $36 \mid 72$ (是,因为 $72 = 36 \times 2$)
  • $36 \mid 108$ (是,因为 $108 = 36 \times 3$)
  • ... 所有公倍数都是 36 的倍数。条件满足。
  • 所以,$12$ 和 $18$ 的最小公倍数是 36。
  • 利用公式验证:我们知道 $(12, 18) = 6$。根据公式 $dl=ab$,我们有 $6 \times l = 12 \times 18 = 216$。解得 $l = 216 / 6 = 36$。结果一致。
  • 示例 2:$a=7, b=10$。
  • 因为 7 和 10 是互素的,所以 $(7, 10) = 1$。
  • 根据公式 $dl=ab$,我们有 $1 \times l = 7 \times 10 = 70$。所以最小公倍数是 70。
  • 这符合我们的直觉:对于互素的两个数,它们的最小公倍数就是它们的乘积。
⚠️ [易错点]
  1. 与 g.c.d. 的对偶性:注意 l.c.m. 和 g.c.d. 定义的对称美。
  2. g.c.d. $d$:$d$ 整除 $a,b$;任何公约数 $e$ 都整除 $d$。($d$ 是公约数里的“集大成者”)
  3. l.c.m. $l$:$a,b$ 整除 $l$;任何公倍数 $m$ 都被 $l$ 整除。($l$ 是公倍数里的“始祖”)
  4. 公式 $dl=|ab|$:当 $a,b$ 中有负数时,要格外小心。例如 $a=-12, b=18$。$d=(-12, 18)=6$。$l$ 必须是正数,所以最小正公倍数还是 36。此时 $d \cdot l = 6 \times 36 = 216$,$|ab| = |-12 \times 18| = |-216|=216$。公式 $dl=|ab|$ 成立。而 $ab=-216$。
📝 [总结]

两个非零整数 $a$ 和 $b$ 的最小公倍数 $l$ 是一个唯一正整数,它满足两个条件:1. $l$ 是 $a$ 和 $b$ 的公倍数;2. $a$ 和 $b$ 的任何其他公倍数都是 $l$ 的倍数。最大公约数 $d$ 和最小公倍数 $l$ 之间有一个重要关系:$d \cdot l = |a \cdot b|$。

🎯 [存在目的]

最小公倍数在数学中同样非常重要,特别是:

  1. 分数通分:在计算两个分数 $\frac{x}{a} + \frac{y}{b}$ 的和时,我们需要找到一个公分母,而最方便的公分母就是 $a$ 和 $b$ 的最小公倍数。
  2. 周期性问题:解决“两个事件分别以周期 $a$ 和 $b$ 发生,它们下一次同时发生是什么时候?”这类问题,答案就是 $a$ 和 $b$ 的最小公倍数。
  3. 理论研究:在环论中,l.c.m. 和 g.c.d. 的概念被推广,成为研究理想的交与和的重要工具。
🧠 [直觉心智模型]

想象两条公交线路,A线车每 $a$ 分钟发一班,B线车每 $b$ 分钟发一班。它们在早上 6:00 同时从总站出发。那么它们下一次同时从总站出发的时刻,需要等待的时间就是 $a$ 和 $b$ 的最小公倍数 $l$ 分钟。任何其他它们同时出发的时刻,都将是 $l$ 分钟的整数倍。

💭 [直观想象]

你有两种不同长度的积木,长分别为 $a$ 和 $b$。你将这两种积木分别排成一列。你希望找到一个最短的长度 $l$,使得 A 积木排成的队列和 B 积木排成的队列能够一样长。这个最短的公共长度 $l$,就是 $a$ 和 $b$ 的最小公倍数。

1.5 (5) 除法算法 (The Division Algorithm)

📜 [原文6]

如果 $a, b \in \mathbb{Z}-\{0\}$,则存在唯一的 $q, r \in \mathbb{Z}$ 使得

$$ a=q b+r \quad \text { 且 } \quad 0 \leq r<|b|, $$

其中 $q$ 是 (quotient),$r$ 是余数 (remainder)。这与初等算术中熟悉的“长除法”相同。

📖 [逐步解释]

这条性质被称为除法算法。注意,虽然名字里有“算法”两个字,但它实际上是一个定理,它保证了某件事情的存在性和唯一性。

  • 如果 $a, b \in \mathbb{Z}$ 且 $b \neq 0$:这里原文写的是 $a, b \in \mathbb{Z}-\{0\}$,但实际上除法算法对被除数 $a=0$ 也是成立的。更标准的条件是 $a, b \in \mathbb{Z}$ 且 $b \neq 0$。即 $a$ 是任意整数, $b$ 是任意非零整数。$a$ 是被除数,$b$ 是除数。
  • 则存在唯一的 $q, r \in \mathbb{Z}$:这是定理的核心结论。它保证我们一定能找到一对整数 $q$ 和 $r$,并且这一对独一无二的。
  • 使得 $a = qb + r$:这是我们熟悉的小学除法关系式:被除数 = 商 × 除数 + 余数
  • 且 $0 \leq r < |b|$:这是对余数 $r$ 的关键约束。它规定余数 $r$ 必须是一个非负数(大于等于0),并且必须严格小于除数 $b$ 的绝对值。这个约束是保证商 $q$ 和余数 $r$ 唯一的关键。
  • $q$ 是商,$r$ 是余数:给这两个唯一的整数命名。

所以,除法算法定理说的是:用一个非零整数 $b$ 去除另一个整数 $a$,必然会得到一个唯一的整数商 $q$ 和一个唯一的非负整数余数 $r$,这个余数比除数 $b$ 的绝对值要小。

∑ [公式拆解]
  • $a, b, q, r \in \mathbb{Z}$: 这四个量都是整数。
  • $b \neq 0$: 除数不为零。
  • $a=qb+r$: 除法关系式。
  • $0 \leq r < |b|$: 余数的范围。$|b|$ 表示 $b$ 的绝对值,因为除数 $b$ 可能是负数,但余数必须和正数比较。
💡 [数值示例]
  • 示例 1 (正数除以正数): $a=25, b=7$。
  • 我们想找到 $q, r$ 使得 $25 = q \times 7 + r$ 且 $0 \leq r < 7$。
  • 我们可以试算:$7 \times 1=7, 7 \times 2=14, 7 \times 3=21, 7 \times 4=28$。
  • $28$ 超过 $25$ 了,所以商 $q$ 应该是 $3$。
  • 此时 $25 = 3 \times 7 + r$,解得 $r = 25 - 21 = 4$。
  • 我们检查余数 $r=4$:$0 \leq 4 < 7$,符合条件。
  • 所以,唯一的解是 $q=3, r=4$。
  • 示例 2 (负数除以正数): $a=-25, b=7$。
  • 我们想找到 $q, r$ 使得 $-25 = q \times 7 + r$ 且 $0 \leq r < 7$。
  • 这里容易出错。如果我们像平常一样想 $-25 \div 7 \approx -3.5$,可能会取 $q=-3$。
  • 如果 $q=-3$,则 $-25 = (-3) \times 7 + r$,解得 $r = -25 + 21 = -4$。这个余数是负的,不满足 $0 \leq r < 7$。
  • 我们必须调整商 $q$,让余数变成正的。我们需要一个更小的 $q$。
  • 尝试 $q=-4$:$-25 = (-4) \times 7 + r$,解得 $r = -25 + 28 = 3$。
  • 这个余数 $r=3$ 满足 $0 \leq 3 < 7$。
  • 所以,唯一的解是 $q=-4, r=3$。
  • 示例 3 (正数除以负数): $a=25, b=-7$。
  • 我们想找到 $q, r$ 使得 $25 = q \times (-7) + r$ 且 $0 \leq r < |-7|=7$。
  • $25 = q \times (-7) + r$ 等价于 $25 = -7q + r$。
  • 我们需要 $-7q$ 比 25 小一点。
  • 如果 $q=-3$, $-7q = 21$。$25 = 21 + r$, $r=4$。满足 $0 \leq 4 < 7$。
  • 如果 $q=-4$, $-7q = 28$。$25 = 28 + r$, $r=-3$。不满足。
  • 所以,唯一的解是 $q=-3, r=4$。
  • 示例 4 ($a=0$): $a=0, b=10$。
  • $0 = q \times 10 + r$ 且 $0 \leq r < 10$。
  • 显然 $q=0, r=0$ 是唯一解。
⚠️ [易错点]
  1. 余数必须非负:这是最常见的错误来源,尤其是在处理负数除法时。计算机和计算器可能有不同的实现(例如,% 运算符在某些语言中可能返回负数)。但数学上的除法算法严格要求余数 $r \geq 0$。
  2. 余数严格小于除数的绝对值:$r < |b|$,不是 $r < b$。当 $b$ 是负数时,这一点很重要。例如,当 $b=-7$ 时,余数范围是 $0 \leq r < 7$。
  3. 唯一性:对于给定的 $a$ 和 $b$,商 $q$ 和余数 $r$ 的组合是唯一确定的。不可能有两组不同的 $(q,r)$ 同时满足条件。
📝 [总结]

除法算法是一个基本定理,它表明任何整数 $a$ 都可以被一个非零整数 $b$ 整除,得到一个唯一的整数商 $q$ 和一个唯一的、范围在 $0$ 到 $|b|-1$ 之间的整数余数 $r$。这个关系可以表示为 $a=qb+r$。

🎯 [存在目的]

除法算法是整个整数算术的基石。它的存在使得:

  1. 欧几里得算法成为可能:下面要讲的欧几里得算法完全依赖于反复应用除法算法。
  2. 模运算(同余算术)得以建立:我们关心一个数被另一个数除的“余数”,正是除法算法保证了这个余数的唯一性和良好定义。这是现代密码学和计算机科学的基础。
  3. 提供了归纳证明的工具:很多关于整数的证明,都可以通过将整数表示为 $nb+r$ 的形式,然后对有限个可能的余数 $r$ 进行分类讨论。
🧠 [直觉心智模型]

想象一条在数轴上无限延伸的标尺,上面有整数刻度。除数 $b$ 就像一把固定长度的量尺。无论被除数 $a$ 在数轴的哪个点,你总能用这把长度为 $|b|$ 的量尺从 0 点开始,跳跃 $q$ 次(向前或向后),使得你最终落地的位置与点 $a$ 的距离 $r$ 不超过一把量尺的长度,并且你总是落在 $a$ 的左边或正好在 $a$ 上。这个距离 $r$ 就是余数,跳跃的次数 $q$ 就是商。

💭 [直观想象]

想象你有 $a$ 个苹果($a$ 可以是负数,表示你欠别人苹果)。你要把这些苹果装进盒子里,每个盒子装 $|b|$ 个。

  1. 如果 $a>0$,你有 $a$ 个苹果。你尽量装满盒子,装了 $q$ 盒,最后手上剩下的不够装满一盒的苹果数量就是余数 $r$。$0 \leq r < |b|$。
  2. 如果 $a<0$,你欠别人 $|a|$ 个苹果。你需要从别人那里拿一些整盒的苹果来还债。为了还清债并让手头剩下一点(非负),你可能需要拿 $q$ 盒(这里 $q$ 是负数,表示拿走)。调整之后,你最终的状态是手上剩下 $r$ 个苹果($0 \leq r < |b|$),并且还清了旧债。这个过程对应了负数除法。

1.6 (6) 欧几里得算法 (The Euclidean Algorithm)

📜 [原文7]

欧几里得算法 (The Euclidean Algorithm) 是一种重要的过程,它通过迭代除法算法来产生两个整数 $a$ 和 $b$ 的最大公约数:如果 $a, b \in \mathbb{Z}-\{0\}$,则我们得到一串商和余数

$$ \begin{align*} a & =q_{0} b+r_{0} \tag{0}\\ b & =q_{1} r_{0}+r_{1} \tag{1}\\ r_{0} & =q_{2} r_{1}+r_{2} \tag{2}\\ r_{1} & =q_{3} r_{2}+r_{3} \tag{3}\\ \vdots & \\ r_{n-2} & =q_{n} r_{n-1}+r_{n} \tag{n}\\ r_{n-1} & =q_{n+1} r_{n} \tag{n+1} \end{align*} $$

其中 $r_{n}$ 是最后一个非零余数。这样的 $r_{n}$ 存在,因为 $|b|>\left|r_{0}\right|>\left|r_{1}\right|> \cdots>\left|r_{n}\right|$ 是一个严格正整数的递减序列,如果余数非零,则这样的序列不能无限持续。那么 $r_{n}$ 就是 $a$ 和 $b$ 的最大公约数 $(a, b)$。

📖 [逐步解释]

这里介绍了求两个整数最大公约数的一个非常高效且经典的方法——欧几里得算法,也叫辗转相除法

  • 过程:该算法是一个迭代(重复)的过程。
  1. 第 0 步: 取两个整数 $a$ 和 $b$(不妨设 $|a| \ge |b|$),做一次除法算法,得到 $a = q_0 b + r_0$。
  2. 第 1 步: 将上一步的除数 $b$ 拿过来作为新的被除数,将上一步的余数 $r_0$ 拿过来作为新的除数,再做一次除法算法,得到 $b = q_1 r_0 + r_1$。
  3. 第 2 步: 重复这个模式,用上一步的除数 $r_0$ 作为被除数,上一步的余数 $r_1$ 作为除数,得到 $r_0 = q_2 r_1 + r_2$。
  4. 持续下去: 不断地用“前一次的余数”去除“前一次的除数”,直到某一步的余数为 0。
    • 算法的终止性
    • 其中 $r_n$ 是最后一个非零余数:算法进行到第 (n+1) 步时,余数变为了 0(即 $r_{n-1}$ 被 $r_n$ 整除)。那么,在这之前一步(第 n 步)得到的那个非零余数 $r_n$,就是我们要求的结果。
    • 为什么算法一定会结束? 因为根据除法算法的性质,每一步的余数都严格小于除数(的绝对值)。所以我们得到一串余数,它们的绝对值是严格递减的:$|b| > |r_0| > |r_1| > |r_2| > \dots \ge 0$。这是一个由非负整数组成的严格递减序列。根据我们之前讲的良序性,任何非空的正整数集都有一个最小元,所以这个序列不可能无限地递减下去而不碰到 0。它最终必然在有限步内达到余数 0。
    • 算法的正确性
    • 那么 $r_n$ 就是 $a$ 和 $b$ 的最大公约数 $(a, b)$:为什么这最后一个非零余数就是 g.c.d. 呢?
    • 关键在于一个引理:$(x, y) = (y, x \pmod y)$,即两个数的最大公约数等于较小数与大数除以较小数的余数的最大公约数。
    • 让我们从下往上看算法:
    • 从第 (n+1) 步 $r_{n-1} = q_{n+1} r_n + 0$,我们知道 $r_n \mid r_{n-1}$。所以 $(r_{n-1}, r_n) = r_n$。
    • 从第 (n) 步 $r_{n-2} = q_n r_{n-1} + r_n$,根据引理,$(r_{n-2}, r_{n-1}) = (r_{n-1}, r_n) = r_n$。
    • 从第 (n-1) 步 ...,我们可以一路向上回溯,$(r_{n-3}, r_{n-2}) = (r_{n-2}, r_{n-1}) = r_n$。
    • ...
    • 直到最上面,我们得到 $(a, b) = (b, r_0) = (r_0, r_1) = \dots = (r_{n-1}, r_n) = r_n$。
    • 这就证明了算法的正确性。
∑ [公式拆解]
  • $a = q_0 b + r_0$: 标准的除法算法表达式。
  • $|b| > |r_0| > |r_1| > \dots$: 这是证明算法终止性的关键。因为余数都是整数,且绝对值严格递减,所以这个序列必须在有限步内到达 0。
💡 [数值示例]
  • 示例:求 $a=42, b=30$ 的最大公约数。
  1. $42 = 1 \times 30 + 12$ ($q_0=1, r_0=12$)
  2. $30 = 2 \times 12 + 6$ ($q_1=2, r_1=6$)
  3. $12 = 2 \times 6 + 0$ ($q_2=2, r_2=0$)
    • 余数变成 0 了。算法结束。
    • 最后一个非零余数是 6。
    • 所以,$(42, 30) = 6$。这与我们之前手动列举约数得到的结果一致。
⚠️ [易错点]
  1. 迭代对象:每次迭代都是用 (前一步的除数, 前一步的余数) 作为新的 (被除数, 除数)。不要搞错了。
  2. 结束条件:当余数等于 0 时停止。结果是前一步的那个非零余数
  3. 负数:该算法对负数同样有效。通常做法是先取它们的绝对值来计算,因为 $(a, b) = (|a|, |b|)$。例如,$(-42, 30) = (42, 30) = 6$。
📝 [总结]

欧几里得算法是一个通过反复应用除法算法(辗转相除)来高效计算两个非零整数的最大公约数的过程。其核心思想是 $(a,b) = (b, a \bmod b)$,最终结果是当余数为 0 时的前一个非零余数。

🎯 [存在目的]

这个算法极其重要,因为:

  1. 高效性:相比于分解质因数的方法,欧几里得算法对于非常大的整数也极其快速。分解质因数在计算上是非常困难的。
  2. 构造性:它不仅仅是算出一个值,它的计算过程本身包含了丰富的信息。正如我们接下来会看到的,它可以被用来反向求解一个重要的线性方程。
  3. 理论基石:它是数论中许多其他定理和算法的基础。
🧠 [直觉心智模型]

回到那个用正方形瓷砖铺满 $a \times b$ 矩形房间的想象。欧几里得算法的过程是这样的:

  1. 先用尽可能多的 $b \times b$ 的大方砖去铺。铺完后,会剩下一个 $r_0 \times b$ 的小矩形区域 ($r_0$ 是 $a$ 除以 $b$ 的余数)。
  2. 现在问题变成了,要用最大的方砖铺满这个新的 $r_0 \times b$ 的矩形。我们把这个小矩形旋转一下,变成 $b \times r_0$ 的。
  3. 然后,我们用 $r_0 \times r_0$ 的方砖去铺这个 $b \times r_0$ 的矩形。铺完后又会剩下一个更小的矩形...
  4. 我们不断地用小方砖去铺剩余的矩形区域,直到有一次,剩余的矩形能被当前使用的方砖正好铺满(没有剩余)。
  5. 那么,最后这次使用的方砖的边长,就是能同时铺满原始 $a \times b$ 房间的最大方砖的边长,也就是 $(a,b)$。

16.1 示例

📜 [原文8]

假设 $a=57970$ 且 $b=10353$。应用欧几里得算法,我们得到:

$$ \begin{aligned} 57970 & =(5) 10353+6205 \\ 10353 & =(1) 6205+4148 \\ 6205 & =(1) 4148+2057 \\ 4148 & =(2) 2057+34 \\ 2057 & =(60) 34+17 \\ 34 & =(2) 17 \end{aligned} $$

这表明 $(57970,10353)=17$。

📖 [逐步解释]

这是一个具体的数值应用,演示了如何使用欧几里得算法计算两个较大整数的最大公约数。

  • 第 1 步: 用大数 57970 除以小数 10353。
  • $57970 \div 10353 \approx 5.6$。所以商是 5。
  • 余数是 $57970 - 5 \times 10353 = 57970 - 51765 = 6205$。
  • 得到第一行:$57970 = (5)10353 + 6205$。
  • 第 2 步: 用上一步的除数 10353 除以上一步的余数 6205。
  • $10353 \div 6205 \approx 1.6$。商是 1。
  • 余数是 $10353 - 1 \times 6205 = 4148$。
  • 得到第二行:$10353 = (1)6205 + 4148$。
  • 第 3 步: 用 6205 除以 4148。
  • $6205 \div 4148 \approx 1.49$。商是 1。
  • 余数是 $6205 - 1 \times 4148 = 2057$。
  • 得到第三行:$6205 = (1)4148 + 2057$。
  • 第 4 步: 用 4148 除以 2057。
  • $4148 \div 2057 \approx 2.01$。商是 2。
  • 余数是 $4148 - 2 \times 2057 = 4148 - 4114 = 34$。
  • 得到第四行:$4148 = (2)2057 + 34$。
  • 第 5 步: 用 2057 除以 34。
  • $2057 \div 34 \approx 60.5$。商是 60。
  • 余数是 $2057 - 60 \times 34 = 2057 - 2040 = 17$。
  • 得到第五行:$2057 = (60)34 + 17$。
  • 第 6 步: 用 34 除以 17。
  • $34 \div 17 = 2$。商是 2。
  • 余数是 0。
  • 得到第六行:$34 = (2)17 + 0$。
  • 结论: 因为第六步的余数是 0,所以算法停止。最大公约数是第五步的非零余数,也就是 17。因此,$(57970, 10353) = 17$。
💡 [数值示例]

本段本身就是一个完整的具体数值示例。

⚠️ [易错点]
  1. 计算错误:在处理大数字时,每一步的乘法和减法都可能出错,需要仔细。
  2. 混淆步骤:要记住总是用 (旧除数, 旧余数) 作为 (新被除数, 新除数)
📝 [总结]

本段通过一个具体的、多步骤的例子,清晰地展示了欧几里得算法的实际操作流程,并得出了两个大数的最大公约数。

🎯 [存在目的]

这个例子的目的是为了让读者对欧几里得算法有一个具体、可操作的认识。抽象的算法描述可能难以理解,但一个翔实的数值计算过程能极大地帮助读者掌握该算法的精髓和步骤。它也突显了该算法的威力——即便是对上万的数字,也只用了 6 步就找到了答案。

🧠 [直觉心智模型]

想象一个 $57970 \times 10353$ 的巨大房间。

  1. 先用 $10353 \times 10353$ 的方砖去铺,铺了 5 块,剩下 $6205 \times 10353$ 的区域。
  2. 转过来,用 $6205 \times 6205$ 的砖去铺 $10353 \times 6205$ 的区域,铺了 1 块,剩下 $4148 \times 6205$ 的区域。
  3. ...不断重复这个过程...
  4. 最后,我们要铺一个 $34 \times 17$ 的区域,用 $17 \times 17$ 的砖去铺,正好铺 2 块,没有剩余。
  5. 所以,最大的通用方砖尺寸就是 $17 \times 17$。g.c.d. 是 17。

1.7 (7) 扩展欧几里得算法

📜 [原文9]

欧几里得算法的一个我们将经常使用的推论如下:如果 $a, b \in \mathbb{Z}-\{0\}$,则存在 $x, y \in \mathbb{Z}$ 使得

$$ (a, b)=a x+b y $$

也就是说,$a$ 和 $b$ 的最大公约数是 $a$ 和 $b$ 的一个 $\mathbb{Z}$-线性组合 ($\mathbb{Z}$-linear combination)。这可以通过递归地将欧几里得算法中的元素 $r_{n}$ 表示为前面的余数(即,使用上面的方程 ( $n$ ) 来求解 $r_{n}=r_{n-2}-q_{n} r_{n-1}$,将其表示为余数 $r_{n-1}$ 和 $r_{n-2}$,然后使用方程 ( $n-1$ ) 将 $r_{n}$ 表示为余数 $r_{n-2}$ 和 $r_{n-3}$,依此类推,最终将 $r_{n}$ 表示为 $a$ 和 $b$)来推导。

📖 [逐步解释]

这条性质是欧几里得算法的一个极其重要的推论,通常被称为贝祖定理(Bézout's identity)或扩展欧几里得算法

  • 结论:对于任意两个非零整数 $a$ 和 $b$,它们的最大公约数 $(a,b)$ 总可以被表示成 $a$ 和 $b$ 的某种整数倍的和。
  • 存在 $x, y \in \mathbb{Z}$:这里的 $x$ 和 $y$ 是可以找到整数,它们可以是正数、负数或零。定理只保证它们存在,没有说它们是唯一的。
  • $(a,b) = ax + by$:这个表达式叫做 $a$ 和 $b$ 的一个 $\mathbb{Z}$-线性组合。“线性组合”意味着是乘以系数再相加的形式,“$\mathbb{Z}$-”强调了系数 $x, y$ 必须是整数。
  • 如何找到 $x$ 和 $y$?:文本给出了方法——倒推欧几里得算法
  1. 首先,正常执行欧几里得算法,得到一系列的除法等式,以及最大公约数 $d=r_n$。
  2. 找到包含 $d=r_n$ 的那个倒数第二个等式:$r_{n-2} = q_n r_{n-1} + r_n$。
  3. 在这个等式中,把 $r_n$ 解出来:$r_n = r_{n-2} - q_n r_{n-1}$。现在,$d$ 已经被表示成了前两个余数 $r_{n-2}$ 和 $r_{n-1}$ 的线性组合。
  4. 接着,看倒数第三个等式,它会包含 $r_{n-1}$。从中解出 $r_{n-1}$,并把它代入上一步的表达式中。这样,表达式里就只剩下 $r_{n-2}$ 和 $r_{n-3}$ 了。
  5. 重复这个代入过程:一步步地向上回溯,每次都用一个更早的等式来替换掉当前表达式里下标最大的余数,直到最后表达式里只剩下最开始的 $a$ 和 $b$。
  6. 整理最终的表达式,写成 $d = a \cdot (\text{一堆数}) + b \cdot (\text{另一堆数})$ 的形式,括号里的就是我们想找的 $x$ 和 $y$。
∑ [公式拆解]
  • $(a, b)=a x+b y$: 贝祖等式。它声明 g.c.d. 可以表示为 $a$ 和 $b$ 的整数线性组合。
  • $\mathbb{Z}$-linear combination: 形如 $ka+mb$ 的表达式,其中 $k, m$ 是整数。
💡 [数值示例]

我们将在下一节的例子中看到一个完整的计算过程。这里先用一个小例子:$a=42, b=30$。我们知道 $(42, 30)=6$。

  1. 欧几里得算法步骤:

(i) $42 = 1 \times 30 + 12$

(ii) $30 = 2 \times 12 + 6$

  1. 倒推:
    • 从 (ii) 开始,解出 g.c.d. 6:
    • 我们的目标是表示成 42 和 30 的组合,所以需要消掉 12。
    • 从 (i) 中,解出 12:
    • 将这个 12 的表达式代入到 6 的表达式中:
    • 整理表达式,把 42 的项和 30 的项合并:
  2. 结论: 我们找到了 $x=-2, y=3$,使得 $(42, 30) = 42x + 30y$。
⚠️ [易错点]
  1. 代入时的符号:在代入和展开括号时,正负号很容易出错,需要非常小心。
  2. 不要计算中间结果:在整理表达式时,比如 $6 = 30 - 2 \times 12$,不要把 $2 \times 12$ 算成 24。我们的目标是保留余数(12),以便用更早的表达式替换它。
  3. $x, y$ 不唯一:找到的一组 $(x, y)$ 只是众多可能解中的一个。
📝 [总结]

贝祖定理表明,两个整数的最大公约数总能表示为这两个整数的线性组合。扩展欧几里得算法就是通过倒推常规欧几里得算法的步骤来找到这个线性组合的系数 $x$ 和 $y$ 的具体方法。

🎯 [存在目的]

这个推论是数论和抽象代数中一个极其强大的工具。

  1. 求模逆元:在模运算中,求解 $ax \equiv 1 \pmod m$(即求 $a$ 在模 $m$ 下的乘法逆元)是核心问题。这等价于找到整数 $x, y$ 使得 $ax + my = 1$。这只有当 $(a, m)=1$ 时才有解,而扩展欧几里得算法正是求解这个方程的方法。模逆元是 RSA 等公钥密码体制的基础。
  2. 解线性丢番图方程:对于方程 $ax+by=c$,它有整数解的充要条件是 $(a,b) \mid c$。而扩展欧几里得算法是找到其一个特解的基础。
  3. 理论证明:许多理论证明都依赖于能将 g.c.d. 表示为线性组合这一性质。
🧠 [直觉心智模型]

想象你只有两种容量的杯子,一个 $a$ 毫升,一个 $b$ 毫升。你没有刻度,但可以任意装满、倒空或者从一个杯子倒到另一个。贝祖定理说,通过这些操作的组合(相当于 $ax+by$,其中 $x,y$ 代表倒出或倒入的次数),你最终能够精确量出的最小正体积,就是 $(a,b)$ 毫升。扩展欧几里得算法就是告诉你具体该怎么倒水。

17.1 示例

📜 [原文10]

假设 $a=57970$ 且 $b=10353$,我们上面计算出它们的最大公约数为 17。从应用于这两个整数的欧几里得算法的第五个方程(倒数第二个方程)中,我们求解它们的最大公约数:$17=2057-(60) 34$。第四个方程显示 $34=4148-(2) 2057$,因此将 34 的这个表达式代入得到方程 $17=2057-(60)$ [4148-(2)2057],即 $17=(121) 2057-(60) 4148$。求解第三个方程得到 2057 并代入,得到 $17=(121)[6205-(1) 4148]-(60) 4148=(121) 6205-(181) 4148$。使用第二个方程求解 4148,然后使用第一个方程求解 6205,我们最终得到

$$ 17=(302) 57970-(1691) 10353 $$

这很容易直接验证。因此,在这个例子中,最大公约数 $a x+b y=(a, b)$ 的方程有一个解 $x=302$ 和 $y=-1691$。请注意,简单地猜测得到这种关系的可能性相对较小。

📖 [逐步解释]

本段详细演示了如何应用上一节描述的“倒推法”来求解贝祖等式。

背景:

  • $a=57970, b=10353, (a,b)=17$。
  • 欧几里得算法的等式:

(1) $57970 = 5 \cdot 10353 + 6205$

(2) $10353 = 1 \cdot 6205 + 4148$

(3) $6205 = 1 \cdot 4148 + 2057$

(4) $4148 = 2 \cdot 2057 + 34$

(5) $2057 = 60 \cdot 34 + 17$

倒推过程:

  1. 从 (5) 出发,解出 17:

$17 = 2057 - 60 \cdot 34$ (当前组合由 2057 和 34 构成)

  1. 用 (4) 替换 34:

从 (4) 解出 $34 = 4148 - 2 \cdot 2057$。

代入上式:

$17 = 2057 - 60 \cdot (4148 - 2 \cdot 2057)$

展开并合并同类项 (2057 和 4148):

$17 = 1 \cdot 2057 - 60 \cdot 4148 + 120 \cdot 2057$

$17 = (1+120) \cdot 2057 - 60 \cdot 4148$

$17 = 121 \cdot 2057 - 60 \cdot 4148$ (当前组合由 2057 和 4148 构成)

  1. 用 (3) 替换 2057:

从 (3) 解出 $2057 = 6205 - 1 \cdot 4148$。

代入上式:

$17 = 121 \cdot (6205 - 1 \cdot 4148) - 60 \cdot 4148$

展开并合并同类项 (6205 和 4148):

$17 = 121 \cdot 6205 - 121 \cdot 4148 - 60 \cdot 4148$

$17 = 121 \cdot 6205 - (121+60) \cdot 4148$

$17 = 121 \cdot 6205 - 181 \cdot 4148$ (当前组合由 6205 和 4148 构成)

  1. 用 (2) 替换 4148:

从 (2) 解出 $4148 = 10353 - 1 \cdot 6205$。

代入上式:

$17 = 121 \cdot 6205 - 181 \cdot (10353 - 1 \cdot 6205)$

展开并合并同类项 (6205 和 10353):

$17 = 121 \cdot 6205 - 181 \cdot 10353 + 181 \cdot 6205$

$17 = (121+181) \cdot 6205 - 181 \cdot 10353$

$17 = 302 \cdot 6205 - 181 \cdot 10353$ (当前组合由 6205 和 10353 构成)

  1. 用 (1) 替换 6205:

从 (1) 解出 $6205 = 57970 - 5 \cdot 10353$。

代入上式:

$17 = 302 \cdot (57970 - 5 \cdot 10353) - 181 \cdot 10353$

展开并合并同类项 (57970 和 10353):

$17 = 302 \cdot 57970 - 302 \cdot 5 \cdot 10353 - 181 \cdot 10353$

$17 = 302 \cdot 57970 - 1510 \cdot 10353 - 181 \cdot 10353$

$17 = 302 \cdot 57970 - (1510+181) \cdot 10353$

$17 = 302 \cdot 57970 - 1691 \cdot 10353$

最终结果:

我们得到了 $17 = (302) \cdot 57970 + (-1691) \cdot 10353$。

这与 $ax+by=(a,b)$ 的形式匹配,其中 $a=57970, b=10353, (a,b)=17$,我们找到了一个解 $x=302, y=-1691$。

最后,作者指出,像 302 和 -1691 这样大的系数,靠猜是几乎不可能猜出来的,这凸显了算法的价值。

17.2 x, y 的不唯一性

📜 [原文11]

上述 (7) 中的整数 $x$ 和 $y$ 并不唯一。在 $a=57970$ 和 $b=10353$ 的示例中,我们确定了一个解为 $x=302$ 和 $y=-1691$,例如,很容易验证 $x=-307$ 和 $y=1719$ 也满足 $57970 x+10353 y=17$。$x$ 和 $y$ 的一般解是已知的(参见下面和第 8 章的练习)。

📖 [逐步解释]

这段话指出了贝祖等式 $ax+by=d$(其中 $d=(a,b)$)的解 $(x,y)$ 不是唯一的。

  • 给出一个特例: 继上文找到解 $(x_0, y_0) = (302, -1691)$ 之后,作者又给出了另一个解 $(x_1, y_1) = (-307, 1719)$。我们可以验证一下:

$57970 \times (-307) + 10353 \times 1719 = -17794790 + 17806407 = 11617$。

这里作者给的例子似乎有误。让我们自己推导一个正确的。

  • 如何从一个解得到所有解?

假设我们有一个特解 $ax_0 + by_0 = d$。

我们想找另一个解 $a(x_0+k) + b(y_0+m) = d$,展开得到 $ax_0+ak+by_0+bm = d$。

因为 $ax_0+by_0=d$,所以上面方程简化为 $ak+bm=0$,即 $ak = -bm$。

两边同时除以 $d=(a,b)$,得到 $\frac{a}{d}k = -\frac{b}{d}m$。

由于 $\frac{a}{d}$ 和 $\frac{b}{d}$ 是互素的(这是 g.c.d 的一个重要性质),为了让等式成立, $k$ 必须是 $\frac{b}{d}$ 的整数倍,而 $m$ 必须是 $-\frac{a}{d}$ 的整数倍。

即,存在某个整数 $t$,使得 $k = \frac{b}{d}t$,代入得到 $\frac{a}{d} \frac{b}{d} t = -\frac{b}{d} m$,解得 $m = -\frac{a}{d}t$。

所以,所有的解都可以由特解 $(x_0, y_0)$ 生成:

$x = x_0 + \frac{b}{d}t$

$y = y_0 - \frac{a}{d}t$

其中 $t$ 是任意整数。

  • 应用到例子中: $a=57970, b=10353, d=17$。

$x_0=302, y_0=-1691$。

$\frac{b}{d} = \frac{10353}{17} = 609$。

$\frac{a}{d} = \frac{57970}{17} = 3410$。

所以通解是:

$x = 302 + 609t$

$y = -1691 - 3410t$

让我们取 $t=1$,得到一个新解:

$x = 302 + 609 = 911$

$y = -1691 - 3410 = -5101$

让我们取 $t=-1$,得到另一个新解:

$x = 302 - 609 = -307$

$y = -1691 - (-3410) = -1691 + 3410 = 1719$。

啊哈,这说明作者给的例子 $(x,y)=(-307, 1719)$ 是正确的,它是由特解在 $t=-1$ 时得到的。我的手动验证计算出错了。

📝 [总结]

贝祖等式 $ax+by=(a,b)$ 的解是不唯一的。一旦通过扩展欧几里得算法找到了一个特解 $(x_0, y_0)$,就可以通过公式 $x = x_0 + \frac{b}{(a,b)}t$ 和 $y = y_0 - \frac{a}{(a,b)}t$(其中 $t$ 为任意整数)得到所有的整数解。

1.8 (8) 素数

📜 [原文12]

$\mathbb{Z}^{+}$ 的元素 $p$ 称为素数 (prime),如果 $p>1$ 且 $p$ 的唯一正约数是 1 和 $p$(最初,素数一词仅指正整数)。大于 1 且不是素数的整数称为合数 (composite)。例如,$2,3,5,7,11,13,17,19, \ldots$ 是素数,$4,6,8,9,10,12,14,15,16,18, \ldots$ 是合数。

素数的一个重要性质(实际上可以用来定义素数(参见练习 3))如下:如果 $p$ 是一个素数,并且 $p \mid ab$,对于某些 $a, b \in \mathbb{Z}$,那么 $p \mid a$ 或 $p \mid b$。

📖 [逐步解释]

本段定义了素数合数,并介绍了一个素数的核心性质,即欧几里得引理

  • 素数的定义: 一个正整数 $p$ 被称为素数(或质数),需要满足两个条件:
  1. $p > 1$:1 不是素数。
  2. $p$ 的正约数只有 1 和它自己 $p$。
    • 合数的定义: 一个大于 1 且不是素数的整数被称为合数。这意味着一个合数除了 1 和它自己之外,还有其他的正约数。
    • 例子:
    • 素数: 2(唯一的偶素数), 3, 5, 7, ...
    • 合数: 4 (约数有1,2,4), 6 (约数有1,2,3,6), 9 (约数有1,3,9), ...
    • 素数的重要性质(欧几里得引理):
    • 如果 $p$ 是一个素数,并且 $p \mid ab$:前提是,一个素数 $p$ 能整除两个整数 $a$ 和 $b$ 的乘积。
    • 那么 $p \mid a$ 或 $p \mid b$:结论是,这个素数 $p$ 必然至少能整除 $a$ 或 $b$ 中的一个(或者两个都能整除)。
    • 这个性质为什么重要? 因为合数不具备这个性质。例如,6 是一个合数,$6 \mid 24$,而 $24=4 \times 6$。这里 $6 \mid (4 \times 6)$,它整除了乘积,也整除了其中一个因子6。再比如 $6 \mid 72$,而 $72 = 8 \times 9$。在这里 $6 \nmid 8$ 且 $6 \nmid 9$。啊,我的例子 $6 \mid 24 = 4 \times 6$ 不好。应该是 $6 \mid 24 = 3 \times 8$,$6 \nmid 3$ 且 $6 \nmid 8$。抱歉,举例错误。应该是 $6 \mid 12 = 3 \times 4$, $6 \nmid 3$ 且 $6 \nmid 4$。这个例子是正确的。
    • 证明(简要思路):
    • 假设 $p \mid ab$ 且 $p \nmid a$。我们要证明 $p \mid b$。
    • 因为 $p$ 是素数,而 $p \nmid a$,那么 $a$ 和 $p$ 除了 1 之外没有其他公因子。所以 $(a, p) = 1$。
    • 根据贝祖定理,存在整数 $x, y$ 使得 $ax + py = 1$。
    • 将这个等式两边同时乘以 $b$:$abx + pby = b$。
    • 我们知道 $p \mid ab$,所以 $ab$ 可以写成 $pk$ (对于某个整数 $k$)。代入得到 $(pk)x + pby = b$。
    • 提出公因子 $p$:$p(kx + by) = b$。
    • 因为 $k, x, b, y$ 都是整数,所以 $kx+by$ 也是一个整数。
    • 这个等式 $p \times (\text{整数}) = b$ 正是 $p \mid b$ 的定义。
    • 证明完毕。
💡 [数值示例]
  • 素数定义:
  • $p=13$。它大于1。它的正约数只有 1 和 13。所以 13 是素数。
  • $n=12$。它大于1。它的正约数有 1, 2, 3, 4, 6, 12。除了1和12还有别的约数。所以 12 是合数。
  • 欧几里得引理:
  • $p=5$ (素数),$a=6, b=10$。乘积 $ab=60$。我们看到 $5 \mid 60$。根据引理,5 必须整除 6 或 10。确实,$5 \nmid 6$ 但是 $5 \mid 10$。引理成立。
  • $n=6$ (合数),$a=3, b=4$。乘积 $ab=12$。我们看到 $6 \mid 12$。但是,$6 \nmid 3$ 并且 $6 \nmid 4$。对于合数 6,这个性质不成立。
⚠️ [易错点]
  1. 1 不是素数:这是一个约定,但非常重要。如果 1 是素数,那么后面要讲的唯一分解定理就不成立了(例如 $6=2 \times 3 = 1 \times 2 \times 3 = 1 \times 1 \times 2 \times 3 \dots$ 分解方式有无穷多种)。
  2. 欧几里得引理只对素数成立: 这是区分素数和合数的一个本质特征。在更高等的代数中,满足这个引理性质的元素被称为“素元”,而满足“不可再分”定义的元素被称为“不可约元”。在整数环 $\mathbb{Z}$ 中,这两个概念是等价的。
📝 [总结]

素数是大于1且只能被1和自身整除的正整数。合数是大于1的非素数。素数拥有一个关键性质(欧几里得引理):如果一个素数整除两个整数的乘积,那么它至少整除其中一个整数。

🎯 [存在目的]

素数是数论的“原子”。就像所有物质都由原子构成一样,所有整数都可以由素数通过乘法唯一地构造出来。欧几里得引理是证明这个“唯一性”的关键步骤。定义素数和合数是对整数进行分类,是理解整数乘法结构的第一步。

🧠 [直觉心智模型]
  1. 素数就像是乐高积木中最基本的那种 $1 \times 1$ 的小块,无法再被拆分。
  2. 合数就像是用这些小块拼成的大一点的积木块,比如一个 $2 \times 2$ 的块(代表4)或者一个 $2 \times 3$ 的块(代表6),它们都可以被拆分成更小的基本块。
  3. 欧几里得引理:想象一个素数 $p$ 是一块有特殊颜色的(比如红色)的基本积木。如果一个大的组合积木($ab$)中含有红色的成分(即能被 $p$ 整除),那么当你把它拆成两部分 $a$ 和 $b$ 时,红色成分必然存在于至少一部分中。而对于一个由不同颜色基本块拼成的合数积木(比如由蓝色和黄色拼成的绿色积木 6),一个更大的积木(12)可能含有绿色成分,但当你把它拆成两块(3 和 4)时,可能两块都不再是绿色的。

1.9 (9) 算术基本定理 (The Fundamental Theorem of Arithmetic)

📜 [原文13]

算术基本定理 (The Fundamental Theorem of Arithmetic) 指出:如果 $n \in \mathbb{Z}, n>1$,那么 $n$ 可以唯一地分解成素数的乘积,即存在不同的素数 $p_{1}, p_{2}, \ldots, p_{s}$ 和正整数 $\alpha_{1}, \alpha_{2}, \ldots, \alpha_{s}$ 使得

$$ n=p_{1}^{\alpha_{1}} p_{2}^{\alpha_{2}} \ldots p_{s}^{\alpha_{s}} 。 $$

这种因式分解的唯一性在于,如果 $q_{1}, q_{2}, \ldots, q_{t}$ 是任何不同的素数,并且 $\beta_{1}, \beta_{2}, \ldots, \beta_{t}$ 是正整数,使得

$$ n=q_{1}^{\beta_{1}} q_{2}^{\beta_{2}} \ldots q_{t}^{\beta_{t}} $$

那么 $s=t$,并且如果我们按递增顺序排列两组素数,那么 $q_{i}=p_{i}$ 且 $\alpha_{i}=\beta_{i}, 1 \leq i \leq s$。例如,$n=1852423848=2^{3} 3^{2} 11^{2} 19^{3} 31$,这种分解成素数乘积是唯一的。

📖 [逐步解释]

这是数论中最重要的定理之一,也叫唯一分解定理。它包含两个部分:存在性唯一性

  • 前提: $n$ 是任何一个大于 1 的整数。
  • 存在性: $n$ 可以被分解成一个或多个素数的乘积。
  • $n=p_{1}^{\alpha_{1}} p_{2}^{\alpha_{2}} \ldots p_{s}^{\alpha_{s}}$
  • 这里 $p_1, ..., p_s$ 是不同的素数。
  • $\alpha_1, ..., \alpha_s$ 是这些素数对应的指数(幂次),都是正整数。
  • 证明思路(简要): 用反证法和良序性。假设存在大于1的整数不能被分解为素数乘积,那么根据良序性,必然存在一个最小的这样的数,记为 $m$。$m$ 不能是素数(否则它自己就是自己的分解),所以 $m$ 是合数。于是 $m=ab$,其中 $1<a,b<m$。由于 $a, b$ 都比 $m$ 小,根据 $m$ 的最小性, $a$ 和 $b$ 都可以被分解为素数乘积。那么把 $a$ 和 $b$ 的分解乘起来,就得到了 $m$ 的分解,这与假设矛盾。所以所有大于1的整数都能被分解。
  • 唯一性: 这种分解的方式是独一无二的(不考虑- 顺序)。
  • 也就是说,如果 $n$ 有两种看起来不同的素数分解方式:

$n = p_1^{\alpha_1} \dots p_s^{\alpha_s}$ 和 $n = q_1^{\beta_1} \dots q_t^{\beta_t}$

  • 那么,这两组素数实际上是完全一样的。素数的个数相同 ($s=t$),并且把它们从小到大排好序后,对应的素数和指数也完全相同 ($p_i = q_i, \alpha_i = \beta_i$)。
  • 证明思路(简要): 运用欧几里得引理。假设两种分解相等 $p_1^{\alpha_1} \dots p_s^{\alpha_s} = q_1^{\beta_1} \dots q_t^{\beta_t}$。
  • $p_1$ 整除了左边,所以它也必须整除右边。
  • 根据欧几里得引理,$p_1$ 必须整除右边的某个素数 $q_j$。
  • 因为 $q_j$ 也是素数,它的约数只有 1 和 $q_j$,所以 $p_1$ 只能等于 $q_j$。
  • 同样地,可以证明每个 $p_i$ 都等于某个 $q_j$,反之亦然。所以两边的素数集合是相同的。
  • 然后通过约掉相同的素数,用归纳法可以证明对应的指数也必须相同。
  • 例子: $n=1852423848$ 这个大数,它的素因数分解是 $2^3 \cdot 3^2 \cdot 11^2 \cdot 19^3 \cdot 31^1$。算术基本定理保证,任何人用任何正确方法分解这个数,得到的素数因子一定是 3个2, 2个3, 2个11, 3个19 和 1个31,不可能分解出其他素数(比如5或7),也不可能这些素数的个数发生变化。
💡 [数值示例]
  • 示例 1: $n=60$
  • 存在性:$60 = 2 \times 30 = 2 \times 2 \times 15 = 2 \times 2 \times 3 \times 5 = 2^2 \cdot 3^1 \cdot 5^1$。这是一种素数乘积的表示。
  • 唯一性:你不可能找到另一组不同的素数,比如 $60 = 2 \cdot 7 \cdot k$ 或者 $60 = 3^3 \cdot m$,这是不可能的。60 的DNA就是“两个2,一个3,一个5”。
  • 示例 2: $n=17$
  • 17 本身就是素数,它的分解就是 $17^1$。符合定理。
⚠️ [易错点]
  1. 不考虑顺序: 分解 $12 = 2 \times 2 \times 3$ 和 $12 = 2 \times 3 \times 2$ 被认为是同一种分解。唯一性是在不计因子次序的意义上说的。
  2. 不适用于 1: 定理明确规定 $n>1$。1 没有素因子。
  3. 在其他数系中可能不成立: 唯一分解性是整数环 $\mathbb{Z}$ 一个非常特殊的性质。在某些其他的代数结构中(例如环 $\mathbb{Z}[\sqrt{-5}]$ 中,$6 = 2 \times 3 = (1+\sqrt{-5})(1-\sqrt{-5})$,这里的 2, 3, $1+\sqrt{-5}$, $1-\sqrt{-5}$ 都是该环中的“素数”或“不可约元”,出现了两种不同的分解方式),算术基本定理不成立。这正是高等代数要研究的问题之一。
📝 [总结]

算术基本定理断言,任何大于1的整数都可以被表示成素数的乘积,并且这种表示在不计顺序的情况下是唯一的。这个定理揭示了素数是构成整数乘法世界的“基本原子”。

🎯 [存在目的]

这个定理是数论的中心。有了它,我们可以:

  1. 定义 g.c.d. 和 l.c.m. 的另一种方法: 如下一节所示,通过比较两个数的素因数分解,可以非常直观地得到它们的最大公约数和最小公倍数。
  2. 定义和计算许多数论函数: 比如欧拉函数 $\varphi(n)$,约数个数函数 $d(n)$ 等,它们的计算公式都依赖于 $n$ 的素因数分解。
  3. 从结构上理解整数: 它将关于整数乘法的问题,转化为了关于素数及其指数的问题,这常常能使问题大大简化。
🧠 [直觉心智模型]

每个大于1的整数都有一份独一无二的“化学式”或“DNA序列”,这个序列由素数及其个数(指数)组成。比如,12的化学式是 $C_2H_2$(两个碳原子2,一个氢原子3),不对,是 $P_2^2 P_3^1$ (两个2号素数,一个3号素数)。算术基本定理就是说,这种化学式是唯一确定的,你不可能把水($H_2O$)分析出金元素的成分来。

19.1 利用素数分解计算g.c.d.和l.c.m.

📜 [原文14]

假设正整数 $a$ 和 $b$ 表示为素数幂的乘积:

$$ a=p_{1}^{\alpha_{1}} p_{2}^{\alpha_{2}} \ldots p_{s}^{\alpha_{s}}, \quad b=p_{1}^{\beta_{1}} p_{2}^{\beta_{2}} \ldots p_{s}^{\beta_{s}} $$

其中 $p_{1}, p_{2}, \ldots, p_{s}$ 是不同的,且指数 $\geq 0$(我们在这里允许指数为 0,以便乘积取自相同的素数集合——如果该素数实际上不是约数,则指数将为 0)。那么 $a$ 和 $b$ 的最大公约数是

$$ (a, b)=p_{1}^{\min \left(\alpha_{1}, \beta_{1}\right)} p_{2}^{\min \left(\alpha_{2}, \beta_{2}\right)} \ldots p_{s}^{\min \left(\alpha_{s}, \beta_{s}\right)} $$

(而最小公倍数是通过取 $\alpha_{i}$ 和 $\beta_{i}$ 的最大值而不是最小值来获得的)。

📖 [逐步解释]

本段介绍了利用算术基本定理(唯一分解)来计算 g.c.d. 和 l.c.m. 的一种方法。

  • 准备工作:
  • 将 $a$ 和 $b$ 都进行素因数分解。
  • 为了方便比较,我们将分解中涉及到的所有素数都写出来,即使某个素数在其中一个数中不存在。如果不存在,就认为它的指数是 0。
  • 例如,$a=12=2^2 \cdot 3^1$, $b=90=2^1 \cdot 3^2 \cdot 5^1$。为了统一素数集合,我们把它们写成:

$a = 2^2 \cdot 3^1 \cdot 5^0$

$b = 2^1 \cdot 3^2 \cdot 5^1$

  • 计算最大公约数 (g.c.d.):
  • g.c.d. 是要找一个能同时整除 $a$ 和 $b$ 的最大数。这意味着它的素因子必须是 $a$ 和 $b$ 共有的,并且每个素因子的个数(指数)不能超过 $a$ 和 $b$ 中相应素因子的个数。
  • 所以,对于每一个素数 $p_i$,g.c.d. 中该素数的指数,应该取 $a$ 和 $b$ 中该素数指数的较小值
  • 公式:$(a, b) = p_1^{\min(\alpha_1, \beta_1)} p_2^{\min(\alpha_2, \beta_2)} \dots$
  • 计算最小公倍数 (l.c.m.):
  • l.c.m. 是要找一个能同时被 $a$ 和 $b$ 整除的最小数。这意味着它的素因子必须包含 $a$ 和 $b$ 的所有素因子,并且每个素因子的个数(指数)必须足以被 $a$ 和 $b$ 的相应素因子整除。
  • 所以,对于每一个素数 $p_i$,l.c.m. 中该素数的指数,应该取 $a$ 和 $b$ 中该素数指数的较大值
  • 公式(原文未写出,但作为补充):$[a, b] = p_1^{\max(\alpha_1, \beta_1)} p_2^{\max(\alpha_2, \beta_2)} \dots$
💡 [数值示例]
  • 示例: $a=72, b=120$
  1. 分解:

$a = 72 = 8 \times 9 = 2^3 \cdot 3^2$

$b = 120 = 12 \times 10 = (2^2 \cdot 3) \times (2 \cdot 5) = 2^3 \cdot 3^1 \cdot 5^1$

  1. 统一素数基底:

$a = 2^3 \cdot 3^2 \cdot 5^0$ ($\alpha_1=3, \alpha_2=2, \alpha_3=0$)

$b = 2^3 \cdot 3^1 \cdot 5^1$ ($\beta_1=3, \beta_2=1, \beta_3=1$)

  1. 计算 g.c.d. (取指数的最小值 min):

$(72, 120) = 2^{\min(3,3)} \cdot 3^{\min(2,1)} \cdot 5^{\min(0,1)}$

$= 2^3 \cdot 3^1 \cdot 5^0$

$= 8 \times 3 \times 1 = 24$

  1. 计算 l.c.m. (取指数的最大值 max):

$[72, 120] = 2^{\max(3,3)} \cdot 3^{\max(2,1)} \cdot 5^{\max(0,1)}$

$= 2^3 \cdot 3^2 \cdot 5^1$

$= 8 \times 9 \times 5 = 360$

  1. 验证 $d \cdot l = ab$:

$d \cdot l = 24 \times 360 = 8640$

$a \cdot b = 72 \times 120 = 8640$

结果一致。

⚠️ [易错点]
  1. 指数为 0 的处理: 必须把所有出现过的素数都考虑在内,缺失的素数指数记为 0。这是保证公式正确应用的关键。
  2. min vs max: g.c.d. 对应 min (common divisor, 公共的部分,取少的),l.c.m. 对应 max (common multiple, 包含所有,取多的)。不要记反。
📝 [总结]

通过对整数进行唯一的素因数分解,我们可以将计算 g.c.d. 和 l.c.m. 的问题,转化为对相应素数的指数进行取小(g.c.d.)和取大(l.c.m.)的操作,这是一种概念上非常清晰的方法。

🎯 [存在目的]

这个方法的存在,展示了算术基本定理的直接应用和威力。它为 g.c.d. 和 l.c.m. 提供了另一种视角和计算途径,虽然在实际计算大数时不如欧几里得算法高效,但在理论推导和理解概念上非常有帮助。例如,用这个方法可以非常容易地证明 $d \cdot l = ab$。

🧠 [直觉心智模型]
  1. g.c.d.: 想象 $a$ 和 $b$ 是两个菜谱,素数是食材,指数是用量。要做一个“公共”的菜肴(g.c.d.),你只能使用两种菜谱里都出现的食材,并且每种食材的用量不能超过任何一个菜谱里的用量。所以你对每种食材都取“最少的量”。
  2. l.c.m.: 你要准备一个“万能”的食材包(l.c.m.),这个包里的食材要足够做菜谱 $a$,也足够做菜谱 $b$。那么对于每一种可能用到的食材,你都得按两个菜谱中“需要量最大的那个”来准备。

19.2 示例

📜 [原文15]

在上面的示例中,$a=57970$ 和 $b=10353$ 可以分解为 $a=2 \cdot 5 \cdot 11 \cdot 17 \cdot 31$ 和 $b=3 \cdot 7 \cdot 17 \cdot 29$,从中我们可以立即得出它们的最大公约数是 17。然而,请注意,对于大整数,确定它们的素因数分解极其困难(事实上,目前使用的几种常见代码都基于这种困难),因此这不是确定最大公约数的有效方法。欧几里得算法将非常迅速地产生最大公约数,而无需对 $a$ 和 $b$ 进行素因数分解。

📖 [逐步解释]

本段是对前面介绍的两种计算 g.c.d. 方法的对比和评价。

  • 应用素因数分解法:
  • 作者给出了之前例子中两个大数的素因数分解:

$a = 57970 = 2^1 \cdot 3^0 \cdot 5^1 \cdot 7^0 \cdot 11^1 \cdot 17^1 \cdot 29^0 \cdot 31^1$

$b = 10353 = 2^0 \cdot 3^1 \cdot 5^0 \cdot 7^1 \cdot 11^0 \cdot 17^1 \cdot 29^1 \cdot 31^0$

  • 通过比较指数,我们发现,唯一一个在两个分解式中指数都大于0的素数是 17 (指数都是1)。
  • 对于素数 2,指数是 min(1, 0) = 0。
  • 对于素数 3,指数是 min(0, 1) = 0。
  • ...
  • 对于素数 17,指数是 min(1, 1) = 1。
  • ...
  • 所以 $(a,b) = 2^0 \cdot 3^0 \cdot \dots \cdot 17^1 \cdot \dots = 17$。
  • 方法的评价:
  • 优点: 一旦分解完成,结果“立即”就能看出来。
  • 缺点 (致命的): 对大整数进行素因数分解本身是一个极其困难的计算问题。目前还没有已知的快速算法。许多现代密码系统(如 RSA)的安全性就建立在这种困难之上。
  • 结论:
  • 尽管素因数分解法在概念上很清晰,但在实际计算中,对于稍大一点的数,它都是不可行的。
  • 欧几里得算法的优越性在此体现:它完全不需要知道数的因子是什么,通过简单的除法和取余操作,就能快速得到 g.c.d.。
📝 [总结]

本段通过实例对比了两种求最大公约数的方法,强调了虽然素因数分解法在理论上可行,但在实践中由于分解大整数的巨大困难而并不可取,反衬出欧几里得算法的高效性和实用价值。

1.10 (10) 欧拉 $\varphi$-函数 (The Euler $\varphi$-function)

📜 [原文16]

欧拉 $\varphi$-函数 (The Euler $\varphi$-function) 定义如下:对于 $n \in \mathbb{Z}^{+}$,令 $\varphi(n)$ 是正整数 $a \leq n$ 中与 $n$ 互素的数的个数,即 $(a, n)=1$。例如,$\varphi(12)=4$,因为 1, 5, 7 和 11 是小于等于 12 且与 12 没有公因数的唯一正整数。类似地,$\varphi(1)=1, \varphi(2)=1$, $\varphi(3)=2, \varphi(4)=2, \varphi(5)=4, \varphi(6)=2$ 等。对于素数 $p, \varphi(p)=p-1$,更一般地,对于所有 $a \geq 1$,我们有公式

$$ \varphi\left(p^{a}\right)=p^{a}-p^{a-1}=p^{a-1}(p-1) 。 $$

函数 $\varphi$ 是积性 (multiplicative) 的,意味着

$$ \varphi(a b)=\varphi(a) \varphi(b) \quad \text { 如果 }(a, b)=1 $$

(注意,这里 $a$ 和 $b$ 互素很重要)。结合上面的公式,这给出了 $\varphi$ 值的通用公式:如果 $n=p_{1}^{\alpha_{1}} p_{2}^{\alpha_{2}} \ldots p_{s}^{\alpha_{s}}$,那么

$$ \begin{aligned} \varphi(n) & =\varphi\left(p_{1}^{\alpha_{1}}\right) \varphi\left(p_{2}^{\alpha_{2}}\right) \ldots \varphi\left(p_{s}^{\alpha_{s}}\right) \\ & =p_{1}^{\alpha_{1}-1}\left(p_{1}-1\right) p_{2}^{\alpha_{2}-1}\left(p_{2}-1\right) \ldots p_{s}^{\alpha_{s}-1}\left(p_{s}-1\right) 。 \end{aligned} $$

例如,$\varphi(12)=\varphi\left(2^{2}\right) \varphi(3)=2^{1}(2-1) 3^{0}(3-1)=4$。读者应注意,我们将在整个文本中使用字母 $\varphi$ 表示许多不同的函数,因此当我们希望此字母表示欧拉函数时,我们会小心地明确指出。

📖 [逐步解释]

本段介绍了一个非常重要的数论函数——欧拉phi函数(或欧拉总计函数)。

  • 定义: 对于一个正整数 $n$,$\varphi(n)$ 的值等于小于等于 $n$ 并且与 $n$ 互素的正整数的个数
  • "与 $n$ 互素" 意味着 $(a, n) = 1$。
  • 示例: $\varphi(12)$
  • 我们要找在 $\{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12\}$ 中与 12 互素的数。
  • $(1, 12)=1$ (是)
  • $(2, 12)=2$ (否)
  • $(3, 12)=3$ (否)
  • $(4, 12)=4$ (否)
  • $(5, 12)=1$ (是)
  • $(6, 12)=6$ (否)
  • $(7, 12)=1$ (是)
  • $(8, 12)=4$ (否)
  • $(9, 12)=3$ (否)
  • $(10, 12)=2$ (否)
  • $(11, 12)=1$ (是)
  • $(12, 12)=12$ (否)
  • 互素的数是 $\{1, 5, 7, 11\}$,共 4 个。所以 $\varphi(12)=4$。
  • 特殊值的计算公式:
  • 素数 $p$: $\varphi(p) = p-1$。因为 $1, 2, \dots, p-1$ 都与素数 $p$ 互素。
  • 素数的幂 $p^a$: $\varphi(p^a) = p^a - p^{a-1} = p^{a-1}(p-1)$。
  • 解释: 在 $1$到 $p^a$ 的数中,不与 $p^a$ 互素的数,就是那些含有因子 $p$ 的数,即 $p$ 的倍数。这些数是 $1p, 2p, 3p, \dots, (p^{a-1})p$。共有 $p^{a-1}$ 个。
  • 所以与 $p^a$ 互素的数的个数就是总数 $p^a$ 减去不互素的个数 $p^{a-1}$。
  • 积性性质:
  • $\varphi$ 是一个积性函数。这意味着如果 $a$ 和 $b$ 是互素的($(a,b)=1$),那么 $\varphi(ab) = \varphi(a)\varphi(b)$。
  • 注意: 如果 $a,b$ 不互素,这个性质不成立。例如 $\varphi(4)=2, \varphi(2)=1$, 但 $\varphi(4 \times 2)=\varphi(8)=4 \neq \varphi(4)\varphi(2)=2 \times 1 = 2$。这里 4 和 2 不互素。
  • 通用计算公式:
  • 结合算术基本定理积性性质,我们可以计算任意正整数 $n$ 的 $\varphi$ 值。
  1. 分解 $n$: $n=p_{1}^{\alpha_{1}} p_{2}^{\alpha_{2}} \ldots p_{s}^{\alpha_{s}}$。
  2. 利用积性: 因为 $p_i^{\alpha_i}$ 之间两两互素,所以 $\varphi(n) = \varphi(p_1^{\alpha_1}) \varphi(p_2^{\alpha_2}) \dots \varphi(p_s^{\alpha_s})$。
  3. 代入公式: 将每个 $\varphi(p_i^{\alpha_i})$ 替换为 $p_i^{\alpha_i-1}(p_i-1)$。
    • 得到最终公式:$\varphi(n) = p_{1}^{\alpha_{1}-1}(p_{1}-1) \ldots p_{s}^{\alpha_{s}-1}(p_{s}-1)$。
    • 另一种常见写法是 $\varphi(n) = n \left(1-\frac{1}{p_1}\right)\left(1-\frac{1}{p_2}\right)\ldots\left(1-\frac{1}{p_s}\right)$。
    • 示例: $\varphi(12)$
    • $12 = 2^2 \cdot 3^1$。
    • $\varphi(12) = \varphi(2^2) \cdot \varphi(3^1)$ (因为 $2^2$ 和 $3^1$ 互素)
    • $\varphi(2^2) = 2^{2-1}(2-1) = 2^1(1) = 2$。
    • $\varphi(3^1) = 3^{1-1}(3-1) = 3^0(2) = 1 \times 2 = 2$。
    • $\varphi(12) = 2 \times 2 = 4$。与我们手动数的结果一致。
💡 [数值示例]
  • 示例 1: $\varphi(30)$
  • $30 = 2 \cdot 3 \cdot 5$
  • $\varphi(30) = \varphi(2) \varphi(3) \varphi(5)$
  • $\varphi(2) = 2-1 = 1$
  • $\varphi(3) = 3-1 = 2$
  • $\varphi(5) = 5-1 = 4$
  • $\varphi(30) = 1 \times 2 \times 4 = 8$。
  • (手动验证: 与30互素的数是 1, 7, 11, 13, 17, 19, 23, 29,共8个)
  • 示例 2: $\varphi(27)$
  • $27 = 3^3$
  • $\varphi(27) = \varphi(3^3) = 3^{3-1}(3-1) = 3^2(2) = 9 \times 2 = 18$。
⚠️ [易错点]
  1. 积性性质的条件: 必须是两个互素的数相乘,才能拆开。
  2. $\varphi(1)$: 小于等于1且与1互素的正整数只有1本身,所以 $\varphi(1)=1$。这符合公式(因为1没有素因子,空乘积为1)。
  3. $\varphi(p^a)$ 的公式: 是 $p^a - p^{a-1}$,不是 $p^a - 1$。
📝 [总结]

欧拉 $\varphi$-函数 是一个数论函数,它计算小于等于 $n$ 且与 $n$ 互素的正整数的个数。它是一个积性函数,并且有针对素数幂的计算公式,这使得我们可以通过素因数分解来计算任意整数的 $\varphi$ 值。

🎯 [存在目的]

欧拉 $\varphi$-函数在数论和群论中至关重要。

  1. 欧拉定理: 这是费马小定理的推广,表明如果 $(a,n)=1$,则 $a^{\varphi(n)} \equiv 1 \pmod n$。这个定理是 RSA 密码系统的核心理论基础。
  2. 循环群的生成元个数: 在群论中,一个 $n$ 阶的循环群(例如整数模n加法群 $\mathbb{Z}_n$)中,生成元的个数恰好是 $\varphi(n)$。
  3. 原根的存在性: 模 $n$ 的原根存在的充要条件与 $\varphi(n)$ 和 $\varphi(\varphi(n))$ 等有关。
🧠 [直觉心智模型]

想象一个有 $n$ 个座位的旋转木马,座位编号 $0, 1, \dots, n-1$。你从 0 号座位开始,每次跳 $a$ 个座位。如果 $(a,n)=1$,那么你最终会不重不漏地跳遍所有座位,我们称 $a$ 是一个“好的跳跃步长”。$\varphi(n)$ 就是从 $1$ 到 $n$ 这些可能的跳跃步长中,“好的跳跃步长”的个数。

1.11 练习

本节是练习题,旨在巩固本章介绍的整数性质。

111.1 练习 1

📜 [原文17]

  1. 对于以下每对整数 $a$ 和 $b$,确定它们的最大公约数、最小公倍数,并将它们的最大公约数写成 $ax+by$ 的形式,其中 $x$ 和 $y$ 是某些整数。

(a) $a=20, b=13$。

(b) $a=69, b=372$。

(c) $a=792, b=275$。

(d) $a=11391, b=5673$。

(e) $a=1761, b=1567$。

(f) $a=507885, b=60808$。

📖 [逐步解释]

这道题是欧几里得算法和扩展欧几里得算法的综合应用。对于每一对 $(a, b)$,需要做三件事:

  1. 求 g.c.d.: 使用欧几里得算法(辗转相除)。
  2. 求 l.c.m.: 利用公式 $l = |ab|/d$。
  3. 求贝祖等式的解 $(x,y)$: 使用扩展欧几里得算法(倒推)。

这里我们详细解答 (a) 和 (b) 作为示例。

(a) $a=20, b=13$

  1. g.c.d.(20, 13):

$20 = 1 \cdot 13 + 7$

$13 = 1 \cdot 7 + 6$

$7 = 1 \cdot 6 + 1$

$6 = 6 \cdot 1 + 0$

最后一个非零余数是 1。所以 $(20, 13) = 1$。它们是互素的。

  1. l.c.m.(20, 13):

$l = (20 \times 13) / 1 = 260$。

  1. $1 = 20x + 13y$:

倒推:

$1 = 7 - 1 \cdot 6$ (从 $7=1 \cdot 6 + 1$ 得到)

$1 = 7 - 1 \cdot (13 - 1 \cdot 7)$ (用 $6 = 13 - 1 \cdot 7$ 替换)

$1 = 1 \cdot 7 - 1 \cdot 13 + 1 \cdot 7 = 2 \cdot 7 - 1 \cdot 13$

$1 = 2 \cdot (20 - 1 \cdot 13) - 1 \cdot 13$ (用 $7 = 20 - 1 \cdot 13$ 替换)

$1 = 2 \cdot 20 - 2 \cdot 13 - 1 \cdot 13$

$1 = 2 \cdot 20 - 3 \cdot 13$

所以,一个解是 $x=2, y=-3$。

(b) $a=69, b=372$ (为了方便,我们计算 $(372, 69)$)

  1. g.c.d.(372, 69):

$372 = 5 \cdot 69 + 27$

$69 = 2 \cdot 27 + 15$

$27 = 1 \cdot 15 + 12$

$15 = 1 \cdot 12 + 3$

$12 = 4 \cdot 3 + 0$

最后一个非零余数是 3。所以 $(372, 69) = 3$。

  1. l.c.m.(372, 69):

$l = (372 \times 69) / 3 = 124 \times 69 = 8556$。

  1. $3 = 372x + 69y$:

倒推:

$3 = 15 - 1 \cdot 12$

$3 = 15 - 1 \cdot (27 - 1 \cdot 15) = 2 \cdot 15 - 1 \cdot 27$

$3 = 2 \cdot (69 - 2 \cdot 27) - 1 \cdot 27 = 2 \cdot 69 - 4 \cdot 27 - 1 \cdot 27 = 2 \cdot 69 - 5 \cdot 27$

$3 = 2 \cdot 69 - 5 \cdot (372 - 5 \cdot 69) = 2 \cdot 69 - 5 \cdot 372 + 25 \cdot 69$

$3 = -5 \cdot 372 + 27 \cdot 69$

所以,一个解是 $x=-5, y=27$。(注意这里的 $a=372, b=69$。如果题目要求是 $a=69, b=372$,那么 $3 = 27 \cdot 69 - 5 \cdot 372$,解为 $x=27, y=-5$)

其他题目 (c)-(f) 过程类似,但计算更繁琐。


其余练习题是对本章概念的理论深化和应用,这里简要说明其目的和思路。

... (由于篇幅和要求,不再对每个练习题做如此详细的展开,但已覆盖了正文所有内容) ...

2行间公式索引

1. 除法算法:

$$ a=q b+r \quad \text { 且 } \quad 0 \leq r<|b|, $$

此公式定义了整数除法的商 $q$ 和余数 $r$ 的关系,以及余数的范围。

2. 欧几里得算法过程:

$$ \begin{align*} a & =q_{0} b+r_{0} \tag{0}\\ b & =q_{1} r_{0}+r_{1} \tag{1}\\ r_{0} & =q_{2} r_{1}+r_{2} \tag{2}\\ r_{1} & =q_{3} r_{2}+r_{3} \tag{3}\\ \vdots & \\ r_{n-2} & =q_{n} r_{n-1}+r_{n} \tag{n}\\ r_{n-1} & =q_{n+1} r_{n} \tag{n+1} \end{align*} $$

这一系列等式展示了通过辗转相除法逐步求解最大公约数的过程。

3. 欧几里得算法示例:

$$ \begin{aligned} 57970 & =(5) 10353+6205 \\ 10353 & =(1) 6205+4148 \\ 6205 & =(1) 4148+2057 \\ 4148 & =(2) 2057+34 \\ 2057 & =(60) 34+17 \\ 34 & =(2) 17 \end{aligned} $$

这是应用欧几里得算法计算 $(57970, 10353)$ 的具体步骤。

4. 贝祖等式:

$$ (a, b)=a x+b y $$

此公式表明两个整数的最大公约数可以表示为这两个整数的线性组合。

5. 贝祖等式示例:

$$ 17=(302) 57970-(1691) 10353 $$

这是将 $(57970, 10353)=17$ 表示为它们线性组合的一个具体解。

6. 算术基本定理(存在性):

$$ n=p_{1}^{\alpha_{1}} p_{2}^{\alpha_{2}} \ldots p_{s}^{\alpha_{s}} 。 $$

此公式表明任何大于1的整数都可以分解为一系列素数的幂的乘积。

7. 算术基本定理(唯一性):

$$ n=q_{1}^{\beta_{1}} q_{2}^{\beta_{2}} \ldots q_{t}^{\beta_{t}} $$

此公式用于与上一公式对比,以说明素数分解的唯一性。

8. g.c.d.的素数分解形式:

$$ a=p_{1}^{\alpha_{1}} p_{2}^{\alpha_{2}} \ldots p_{s}^{\alpha_{s}}, \quad b=p_{1}^{\beta_{1}} p_{2}^{\beta_{2}} \ldots p_{s}^{\beta_{s}} $$

这里给出了两个整数 $a, b$ 基于共同素数集合的分解形式,为计算g.c.d做准备。

9. g.c.d.计算公式:

$$ (a, b)=p_{1}^{\min \left(\alpha_{1}, \beta_{1}\right)} p_{2}^{\min \left(\alpha_{2}, \beta_{2}\right)} \ldots p_{s}^{\min \left(\alpha_{s}, \beta_{s}\right)} $$

此公式说明如何通过比较素数分解中的指数来计算最大公约数。

10. 欧拉函数 $\varphi(p^a)$:

$$ \varphi\left(p^{a}\right)=p^{a}-p^{a-1}=p^{a-1}(p-1) 。 $$

此公式给出了计算单个素数幂的欧拉函数值的方法。

11. 欧拉函数的积性:

$$ \varphi(a b)=\varphi(a) \varphi(b) \quad \text { 如果 }(a, b)=1 $$

此公式表明欧拉函数是一个积性函数,即对于互素的两个数,其乘积的函数值等于函数值的乘积。

12. 欧拉函数通用公式:

$$ \begin{aligned} \varphi(n) & =\varphi\left(p_{1}^{\alpha_{1}}\right) \varphi\left(p_{2}^{\alpha_{2}}\right) \ldots \varphi\left(p_{s}^{\alpha_{s}}\right) \\ & =p_{1}^{\alpha_{1}-1}\left(p_{1}-1\right) p_{2}^{\alpha_{2}-1}\left(p_{2}-1\right) \ldots p_{s}^{\alpha_{s}-1}\left(p_{s}-1\right) 。 \end{aligned} $$

此公式给出了基于素因数分解计算任意正整数 $n$ 的欧拉函数值的通用方法。

111.2 练习 2

📜 [原文18]

  1. 证明如果整数 $k$ 整除整数 $a$ 和 $b$,那么对于每对整数 $s$ 和 $t$, $k$ 整除 $as+bt$。
📖 [逐步解释]

这道题要求证明公约数的一个基本线性性质。

  1. 从定义出发:

题目给出前提 “整数 $k$ 整除整数 $a$ 和 $b$”。根据整除的定义,这意味着:

  • $k \mid a$ 可以写成 $a = k \cdot m_1$,其中 $m_1$ 是某个整数。
  • $k \mid b$ 可以写成 $b = k \cdot m_2$,其中 $m_2$ 是某个整数。
  1. 构建目标表达式:

我们的目标是证明 $k$ 整除 $as+bt$。我们先把这个表达式写出来,然后把上面的两个等式代入:

$as + bt = (k \cdot m_1)s + (k \cdot m_2)t$

  1. 提取公因数:

在表达式的右侧,我们可以看到两项都有一个公共的因子 $k$。我们把它提取出来:

$as + bt = k(m_1s + m_2t)$

  1. 得出结论:
    • 我们知道 $m_1, s, m_2, t$ 都是整数。
    • 整数的乘法和加法是封闭的,也就是说,整数相乘、相加的结果仍然是整数。
    • 所以,$m_1s + m_2t$ 的结果是一个整数。我们不妨把它记作 $M = m_1s + m_2t$,其中 $M \in \mathbb{Z}$。
    • 这样,原表达式就变成了 $as + bt = k \cdot M$。
    • 根据整除的定义,如果能找到一个整数 $M$ 使得 $as+bt = kM$,那么就说明 $k \mid (as+bt)$。
    • 我们已经找到了这样的整数 $M$,所以证明完毕。
📝 [总结]

这个证明的核心是利用整除的定义将 $a$ 和 $b$ 表示为 $k$ 的倍数,然后代入目标线性组合 $as+bt$ 中,通过因式分解提出 $k$,证明该线性组合也是 $k$ 的一个整数倍。这个性质表明,一个数集的任何公约数,也必然是该数集中元素任意线性组合的约数。

🎯 [存在目的]

这个性质是数论中一个非常基础但重要的定理。它的主要目的在于:

  1. 支撑欧几里得算法的正确性:欧几里得算法的核心是 $(a,b) = (b, r)$ 其中 $r=a-qb$。任何 $a,b$ 的公约数 $k$,根据本题结论,也必然整除 $r=a(1)+b(-q)$。反之,任何 $b,r$ 的公约数也必然整除 $a=r+qb$。因此,$a,b$ 的公约数集合和 $b,r$ 的公约数集合是完全相同的,所以它们的最大公约数也必然相同。本题的结论是这个逻辑链条的第一环。
  2. 理解线性丢番图方程: 对于方程 $ax+by=c$,如果它有解,那么左边是 $a,b$ 的一个线性组合。如果 $d=(a,b)$,那么 $d$ 既整除 $a$ 又整除 $b$,根据本题结论,$d$ 必须整除左边的 $ax+by$,因此也必须整除右边的 $c$。这导出了丢番图方程有解的必要条件:$(a,b) \mid c$。

111.3 练习 3

📜 [原文19]

  1. 证明如果 $n$ 是合数,那么存在整数 $a$ 和 $b$ 使得 $n$ 整除 $ab$ 但 $n$ 既不整除 $a$ 也不整除 $b$。
📖 [逐步解释]

这道题要求证明合数不具备欧几里得引理的性质。

  1. 从合数的定义出发:

题目给出前提 “$n$ 是合数”。根据合数的定义,一个大于 1 的整数 $n$ 是合数,意味着它可以被分解为两个比它小的正整数的乘积。

也就是说,存在整数 $a, b$ 使得 $n = a \cdot b$,并且 $1 < a < n$ 以及 $1 < b < n$。

  1. 验证 $n \mid ab$:

我们刚刚已经把 $n$ 写成了 $n=ab$。这个等式本身就意味着 $n$ 是 $ab$ 的一个因子。更形式化地说,$ab = 1 \cdot n$。根据整除的定义,因为我们找到了一个整数 $c=1$ 使得 $ab=cn$,所以 $n \mid ab$ 成立。

  1. 验证 $n \nmid a$ 和 $n \nmid b$:
    • 证明 $n \nmid a$: 我们知道 $a$ 是一个正整数且 $a < n$。如果 $n \mid a$ 要成立,那么必须存在一个正整数 $k$ 使得 $a = n \cdot k$。但因为 $n>0, k \ge 1$,所以 $n \cdot k \ge n$。这与 $a < n$ 矛盾。所以,$n$ 不可能整除 $a$。
    • 证明 $n \nmid b$: 同理,我们知道 $b$ 是一个正整数且 $b < n$。如果 $n \mid b$ 成立,将导致 $b \ge n$,与 $b < n$ 矛盾。所以,$n$ 也不可能整除 $b$。
  2. 结论:

我们找到了这样一对整数 $a, b$(即 $n$ 的两个小于 $n$ 的因子),它们满足 $n \mid ab$ 但 $n \nmid a$ 和 $n \nmid b$。证明完毕。

💡 [数值示例]
  • 令 $n=10$ (合数)。
  • 根据定义,$10 = 2 \times 5$。我们取 $a=2, b=5$。
  • $1 < 2 < 10$ 且 $1 < 5 < 10$。
  • $n \mid ab$ ? 即 $10 \mid (2 \times 5)$ ? $10 \mid 10$,成立。
  • $n \nmid a$ ? 即 $10 \nmid 2$ ? 成立,因为 2 不是 10 的倍数。
  • $n \nmid b$ ? 即 $10 \nmid 5$ ? 成立,因为 5 不是 10 的倍数。
  • 所以对于合数 10,我们找到了 $a=2, b=5$ 满足题目条件。
📝 [总结]

该证明利用合数的定义直接构造出所需的整数 $a$ 和 $b$。因为合数 $n$ 本身可以分解为 $n=ab$ (其中 $a,b$ 都小于$n$),这天然满足了 $n \mid ab$,同时又因为 $a,b$ 都小于 $n$,保证了 $n$ 不可能整除 $a$ 或 $b$。

🎯 [存在目的]

本练习的目的是从反面衬托出素数的特殊性。它表明“如果一个数整除一个乘积,它必然整除其中一个因子”这个优美的性质(欧几里得引理)是素数所独有的,而合数不具备。这为在更抽象的代数结构中区分“素元”(满足欧几里得引理的元素)和“不可约元”(无法再分解的元素)提供了最初的范例。在整数中,这两个概念恰好是等价的。

111.4 练习 4

📜 [原文20]

  1. 令 $a, b$ 和 $N$ 为固定的非零整数,且 $d=(a, b)$ 为 $a$ 和 $b$ 的最大公约数。假设 $x_{0}$ 和 $y_{0}$ 是方程 $ax+by=N$ 的特解(即 $ax_{0}+by_{0}=N$)。证明对于任何整数 $t$,整数

$$ x=x_{0}+\frac{b}{d} t \quad \text { 且 } \quad y=y_{0}-\frac{a}{d} t $$

也是 $ax+by=N$ 的解(这实际上是通解)。

📖 [逐步解释]

这道题要求我们验证给出的通解公式的正确性。

  1. 目标: 证明 $a(x_0 + \frac{b}{d}t) + b(y_0 - \frac{a}{d}t) = N$。
  2. 代入和展开:

我们将给出的 $x$ 和 $y$ 的表达式代入方程 $ax+by$ 的左边:

$ax + by = a\left(x_{0}+\frac{b}{d} t\right) + b\left(y_{0}-\frac{a}{d} t\right)$

使用分配律展开括号:

$= ax_0 + a\frac{b}{d}t + by_0 - b\frac{a}{d}t$

  1. 重新组合:

将含有 $t$ 的项和不含 $t$ 的项分开:

$= (ax_0 + by_0) + \left(a\frac{b}{d}t - b\frac{a}{d}t\right)$

  1. 利用已知条件:
    • 我们已知 $(x_0, y_0)$ 是一个特解,所以 $ax_0 + by_0 = N$。
    • 对于带 $t$ 的部分,我们整理一下:$a\frac{b}{d}t - b\frac{a}{d}t = \frac{abt}{d} - \frac{bat}{d} = 0$。
  2. 得出结论:

将上述结果代回第3步的表达式:

$ax+by = (N) + (0) = N$

这表明,对于任何整数 $t$,给出的 $x$ 和 $y$ 的表达式确实满足方程 $ax+by=N$。所以它们都是方程的解。

(该题目还提到“这实际上是通解”。证明这是通解需要额外一步:证明任何解都必须是这个形式。简要思路如下:假设 $(x', y')$ 是另一个任意解,则 $ax'+by'=N$。与 $ax_0+by_0=N$ 相减得到 $a(x'-x_0)+b(y'-y_0)=0$。由此可推导出 $x'-x_0$ 必须是 $b/d$ 的整数倍,即 $x'-x_0 = t(b/d)$, 这就导出了通解公式。)

📝 [总结]

通过直接代入验证,我们可以证明由一个特解 $(x_0, y_0)$ 和整数参数 $t$ 生成的解系 $x=x_{0}+\frac{b}{d} t, y=y_{0}-\frac{a}{d} t$ 确实都是线性丢番图方程 $ax+by=N$ 的解。这组解构成了该方程的通解。

🎯 [存在目的]

本练习的目的是介绍并验证求解线性丢番图方程的一般方法。在通过扩展欧几里得算法找到一个特解后,我们往往需要知道所有可能的解。这个通解公式在理论和应用中都非常重要,例如在密码学中寻找满足特定同余条件的密钥,或者在解决整数规划问题时,都需要找到解的完整集合。

111.5 练习 5

📜 [原文21]

  1. 确定每个整数 $n \leq 30$ 的 $\varphi(n)$ 值,其中 $\varphi$ 表示欧拉 $\varphi$-函数。
📖 [逐步解释]

这道题是欧拉 $\varphi$-函数定义的直接应用和计算练习。我们可以通过三种方法:

  1. 直接计数法: 对每个 $n$,列出从 1 到 $n$ 的所有数,然后逐个检查与 $n$ 的最大公约数是否为 1。
  2. 公式法: 对每个 $n$ 进行素因数分解,然后使用公式 $\varphi(n) = n \prod_{p|n}(1-1/p)$。
  3. 综合法: 结合积性性质和特殊值。例如 $\varphi(p)=p-1$。

下面是 $n=1$ 到 $n=30$ 的 $\varphi(n)$ 值列表:

  • $\varphi(1)=1$
  • $\varphi(2)=1$ (素数)
  • $\varphi(3)=2$ (素数)
  • $\varphi(4)=\varphi(2^2)=2^{2-1}(2-1)=2$
  • $\varphi(5)=4$ (素数)
  • $\varphi(6)=\varphi(2)\varphi(3)=1 \times 2 = 2$
  • $\varphi(7)=6$ (素数)
  • $\varphi(8)=\varphi(2^3)=2^{3-1}(2-1)=4$
  • $\varphi(9)=\varphi(3^2)=3^{2-1}(3-1)=6$
  • $\varphi(10)=\varphi(2)\varphi(5)=1 \times 4 = 4$
  • $\varphi(11)=10$ (素数)
  • $\varphi(12)=\varphi(4)\varphi(3)=2 \times 2 = 4$
  • $\varphi(13)=12$ (素数)
  • $\varphi(14)=\varphi(2)\varphi(7)=1 \times 6 = 6$
  • $\varphi(15)=\varphi(3)\varphi(5)=2 \times 4 = 8$
  • $\varphi(16)=\varphi(2^4)=2^{4-1}(2-1)=8$
  • $\varphi(17)=16$ (素数)
  • $\varphi(18)=\varphi(2)\varphi(9)=1 \times 6 = 6$
  • $\varphi(19)=18$ (素数)
  • $\varphi(20)=\varphi(4)\varphi(5)=2 \times 4 = 8$
  • $\varphi(21)=\varphi(3)\varphi(7)=2 \times 6 = 12$
  • $\varphi(22)=\varphi(2)\varphi(11)=1 \times 10 = 10$
  • $\varphi(23)=22$ (素数)
  • $\varphi(24)=\varphi(8)\varphi(3)=4 \times 2 = 8$
  • $\varphi(25)=\varphi(5^2)=5^{2-1}(5-1)=20$
  • $\varphi(26)=\varphi(2)\varphi(13)=1 \times 12 = 12$
  • $\varphi(27)=\varphi(3^3)=3^{3-1}(3-1)=18$
  • $\varphi(28)=\varphi(4)\varphi(7)=2 \times 6 = 12$
  • $\varphi(29)=28$ (素数)
  • $\varphi(30)=\varphi(2)\varphi(3)\varphi(5)=1 \times 2 \times 4 = 8$
📝 [总结]

通过计算,我们得到了一张欧拉 $\varphi$-函数在小整数范围内的值表。这有助于我们直观地感受这个函数的增长趋势和波动性。

🎯 [存在目的]

本练习旨在通过实际计算来巩固对欧拉 $\varphi$-函数的定义、性质(尤其是积性)和计算公式的理解。这种手算练习可以加深对抽象定义的具体感知,为后续在群论(计算循环群生成元个数)和数论(欧拉定理)中的应用打下基础。

111.6 练习 6

📜 [原文22]

  1. 用归纳法证明 $\mathbb{Z}$ 的良序性,并证明最小元素是唯一的。
📖 [逐步解释]

该题目有两部分。

第一部分:证明最小元素的唯一性

  1. 反证法: 假设最小元素不唯一。
  2. 设 $A$ 是 $\mathbb{Z}^+$ 的一个非空子集,假设 $m_1$ 和 $m_2$ 都是 $A$ 的最小元素,且 $m_1 \neq m_2$。
  3. 根据最小元素的定义:
    • 因为 $m_1$ 是最小元素,所以对于 $A$ 中所有元素 $a$(包括 $m_2$),都有 $m_1 \leq a$。因此,$m_1 \leq m_2$。
    • 因为 $m_2$ 是最小元素,所以对于 $A$ 中所有元素 $a$(包括 $m_1$),都有 $m_2 \leq a$。因此,$m_2 \leq m_1$。
  4. 根据反对称性,如果 $m_1 \leq m_2$ 且 $m_2 \leq m_1$ 同时成立,那么必然有 $m_1 = m_2$。
  5. 这与我们最初的假设 $m_1 \neq m_2$ 相矛盾。
  6. 因此,假设不成立,最小元素必须是唯一的。

第二部分:用归纳法证明良序性

注意:良序性原理和数学归纳法原理是等价的,通常一个被当作公理来证明另一个。这里要求用归纳法证明良序性。证明的命题是:任何非空的正整数子集都有一个最小元素

  1. 使用反证法: 假设存在一个或多个非空的正整数子集没有最小元素。我们称这样的集合为“坏”集合。
  2. 构造证明命题: 令 $P(n)$ 为命题:“整数 $n$ 不属于任何‘坏’集合”。我们将用强归纳法证明 $P(n)$ 对所有正整数 $n$ 成立。
  3. 基础情况 (n=1): 假设 1 属于某个“坏”集合 $S$。因为 $S$ 是正整数的集合,1 是最小的正整数,所以 1 必然是 $S$ 的最小元素。但这与 $S$ 是“坏”集合(没有最小元素)的定义相矛盾。所以 1 不可能属于任何“坏”集合。$P(1)$ 成立。
  4. 归纳步骤: 假设对于所有 $k < n$,$P(k)$ 都成立(即 $1, 2, \dots, n-1$ 都不在任何“坏”集合里)。我们要证明 $P(n)$ 也成立。
  5. 再次使用反证法:假设 $P(n)$ 不成立,即 $n$ 属于某个“坏”集合 $S$。
  6. 因为 $n$ 在 $S$ 中,而 $S$ 没有最小元素,所以 $S$ 中必定存在一个元素 $m$ 使得 $m < n$。
  7. 这个元素 $m$ 也是一个正整数,并且 $m$ 也属于这个“坏”集合 $S$。
  8. 但是,根据我们的归纳假设,所有小于 $n$ 的正整数 $k$(包括 $m$)都不属于任何“坏”集合。
  9. 这导致了矛盾:$m$ 既在“坏”集合 $S$ 中,又根据归纳假设不能在任何“坏”集合中。
  10. 结论: 假设 $P(n)$ 不成立是错误的。因此 $P(n)$ 成立。
  11. 最终结论: 通过强归纳法,我们证明了对所有正整数 $n$,$P(n)$ 都成立。这意味着没有任何正整数可以属于一个“坏”集合。换句话说,“坏”集合(没有最小元素的非空正整数子集)根本不存在。因此,任何非空的正整数子集都必须有一个最小元素。
📝 [总结]

最小元素的唯一性可以通过反对称性简单证明。良序性的归纳证明则更精巧,它通过反证法假设存在没有最小元素的集合,然后利用强归纳法证明没有任何正整数能存在于这样的集合中,从而导出这样的集合无法存在。

🎯 [存在目的]

这个练习旨在揭示数学归纳法和良序性之间的深刻联系。它们是同一个逻辑基础的两种不同表述,都是关于正整数结构的基本公理。通过用一个证明另一个,可以加深对这两个原理的理解,并锻炼进行元数学证明(即关于证明方法本身的证明)的能力。

111.7 练习 7

📜 [原文23]

  1. 如果 $p$ 是一个素数,证明不存在非零整数 $a$ 和 $b$ 使得 $a^{2}=pb^{2}$(即 $\sqrt{p}$ 不是有理数)。
📖 [逐步解释]

这道题要求证明素数的平方根是无理数,是证明 $\sqrt{2}$ 是无理数的推广。

  1. 使用反证法: 假设 $\sqrt{p}$ 是一个有理数。
  2. 那么,根据有理数的定义,$\sqrt{p}$ 可以写成两个整数的比:$\sqrt{p} = \frac{a}{b}$,其中 $a, b \in \mathbb{Z}$ 且 $b \neq 0$。
  3. 最简分数假设: 我们可以进一步假设这个分数 $\frac{a}{b}$ 已经化为最简形式。这意味着 $a$ 和 $b$ 的最大公约数是 1,即 $(a, b) = 1$。这是此证明的关键。
  4. 代数变形: 将等式 $\sqrt{p} = \frac{a}{b}$ 两边平方,得到 $p = \frac{a^2}{b^2}$。
  5. 整理得 $a^2 = p b^2$。
  6. 运用欧几里得引理:
    • 等式 $a^2 = p b^2$ 表明 $p$ 整除 $a^2$ (记作 $p \mid a^2$)。
    • 因为 $p$ 是一个素数,根据欧几里得引理(如果素数整除一个乘积,则它至少整除其中一个因子),$p \mid (a \cdot a)$ 意味着 $p \mid a$。
  7. 代入与推导:
    • 既然 $p \mid a$,那么 $a$ 可以被写成 $a=pk$ 的形式,其中 $k$ 是某个整数。
    • 将 $a=pk$ 代入到第5步的等式中:$(pk)^2 = p b^2$。
    • 展开得到 $p^2 k^2 = p b^2$。
    • 两边同时除以 $p$(因为 $p$ 是素数,不为0),得到 $p k^2 = b^2$。
  8. 再次运用欧几里得引理:
    • 等式 $b^2 = p k^2$ 表明 $p \mid b^2$。
    • 同样,因为 $p$ 是素数,根据欧几里得引理,我们得出 $p \mid b$。
  9. 导出矛盾:
    • 在第6步,我们得出 $p \mid a$。
    • 在第8步,我们得出 $p \mid b$。
    • 这意味着 $p$ 是 $a$ 和 $b$ 的一个公约数。
    • 但这与第3步的假设 $(a, b) = 1$ (即 $a$和$b$没有大于1的公约数)相矛盾。因为 $p$ 是素数,所以 $p>1$。
  10. 结论: 我们的初始假设“$\sqrt{p}$ 是有理数”必然是错误的。因此,$\sqrt{p}$ 必须是无理数。
📝 [总结]

这个经典的证明是反证法的典范应用。它通过假设命题为假($\sqrt{p}$是有理数),并利用素数的核心性质(欧几里得引理),最终导出了与分数最简性假设的内在矛盾,从而证明了原命题的正确性。

🎯 [存在目的]

本练习的目的在于展示数论概念(特别是素数的性质)在解决看似属于不同数学领域(如实数理论)问题时的威力。它强化了对欧几里得引理的理解,并提供了一个优雅的、逻辑严谨的证明范例。

111.8 练习 8

📜 [原文24]

  1. 令 $p$ 为素数,$n \in \mathbb{Z}^{+}$。求出整除 $n!=n(n-1)(n-2) \ldots 2 \cdot 1$ 的最大 $p$ 次幂的公式(它涉及取整函数 (greatest integer function))。
📖 [逐步解释]

这道题要求推导著名的勒让德公式 (Legendre's Formula)。公式是:$n!$ 中素数 $p$ 的指数 $E_p(n!)$ 为

$E_p(n!) = \sum_{k=1}^{\infty} \left\lfloor \frac{n}{p^k} \right\rfloor = \left\lfloor \frac{n}{p} \right\rfloor + \left\lfloor \frac{n}{p^2} \right\rfloor + \left\lfloor \frac{n}{p^3} \right\rfloor + \dots$

其中 $\lfloor x \rfloor$ 是取整函数,表示不大于 $x$ 的最大整数。

推导过程:

  1. 目标: 我们要计算在 $n! = 1 \times 2 \times \dots \times n$ 的素因数分解中,素数 $p$ 出现了多少次。
  2. 第一步:计算 $p$ 的倍数:

在 $1, 2, \dots, n$ 这些数中,有些是 $p$ 的倍数,它们都至少贡献了一个因子 $p$。这些数是 $p, 2p, 3p, \dots, kp$ 只要 $kp \le n$,即 $k \le n/p$。这样的数一共有 $\lfloor n/p \rfloor$ 个。

  1. 第二步:计算 $p^2$ 的倍数:

像 $p^2, 2p^2$ 这样的数,它们至少含有两个因子 $p$。在第一步中,我们只为它们算了一个因子 $p$,所以现在需要把额外的那个因子 $p$ 加上。在 $1, 2, \dots, n$ 中,$p^2$ 的倍数有多少个呢?同理,有 $\lfloor n/p^2 \rfloor$ 个。

  1. 第三步:计算 $p^3$ 的倍数:

像 $p^3, 2p^3$ 这样的数,它们至少含有三个因子 $p$。在前两步中,我们已经为它们计算了两次(一次作为 $p$ 的倍数,一次作为 $p^2$ 的倍数),所以还需要再补上一个因子 $p$。这样的数有 $\lfloor n/p^3 \rfloor$ 个。

  1. 以此类推:

对于任意的 $k \ge 1$,所有 $p^k$ 的倍数都比 $p^{k-1}$ 的倍数多贡献一个因子 $p$。

  1. 加总:

$p$ 的总指数,就是所有这些贡献的总和。

总指数 = (至少含一个 $p$ 的数的个数) + (至少含两个 $p$ 的数的个数) + ...

这个想法是正确的,上述的第2,3步正是这个思路。因此,总的指数就是把所有这些贡献加起来:

$E_p(n!) = \lfloor n/p \rfloor + \lfloor n/p^2 \rfloor + \lfloor n/p^3 \rfloor + \dots$

这个求和是有限的,因为当 $p^k > n$ 时,$\lfloor n/p^k \rfloor$ 就会等于 0。

💡 [数值示例]

求 25! 中素数 3 的最高次幂。

  • $n=25, p=3$。
  • $E_3(25!) = \lfloor 25/3 \rfloor + \lfloor 25/3^2 \rfloor + \lfloor 25/3^3 \rfloor + \dots$
  • $\lfloor 25/3 \rfloor = \lfloor 8.33 \dots \rfloor = 8$
  • $\lfloor 25/9 \rfloor = \lfloor 2.77 \dots \rfloor = 2$
  • $\lfloor 25/27 \rfloor = \lfloor 0.92 \dots \rfloor = 0$
  • 后面的项都是 0。
  • 所以,$E_3(25!) = 8 + 2 + 0 = 10$。
  • 这意味着 $3^{10}$ 整除 25!,但 $3^{11}$ 不整除 25!。
📝 [总结]

勒让德公式提供了一个简洁而有效的方法来计算阶乘中素因子的幂次。其推导思想是分层计数:首先计算所有贡献至少一个 $p$ 因子的数,然后是所有贡献至少两个 $p$ 因子的数,以此类推,最后将各层的贡献相加。

🎯 [存在目的]

本练习旨在引导学生发现或理解一个重要的组合数论公式。它不仅是阶乘性质的一个深刻体现,在处理涉及二项式系数整除性的问题(如卢卡斯定理)时也至关重要。这个问题锻炼了组合计数和对整除概念的深入应用。

111.9 练习 9

📜 [原文25]

  1. 编写一个计算机程序来确定两个整数 $a$ 和 $b$ 的最大公约数 $(a, b)$,并以 $ax+by$ 的形式表示 $(a, b)$,其中 $x$ 和 $y$ 是某些整数。
📖 [逐步解释]

这道题要求实现扩展欧几里得算法。虽然前面我们用的是“倒推法”,但在编程时,使用一个迭代的、正向的算法更高效。

迭代算法思想:

我们不仅追踪余数 $r_i$,还同时追踪每一项的系数 $x_i, y_i$,使得 $r_i = a x_i + b y_i$。

  1. 初始化:

$r_0 = a, x_0 = 1, y_0 = 0$ (因为 $a = a \cdot 1 + b \cdot 0$)

$r_1 = b, x_1 = 0, y_1 = 1$ (因为 $b = a \cdot 0 + b \cdot 1$)

  1. 迭代:

只要 $r_{i+1} \neq 0$,我们就重复以下过程:

  • 首先,根据欧几里得算法,做除法:$r_i = q_{i+1} r_{i+1} + r_{i+2}$。所以 $q_{i+1} = \lfloor r_i / r_{i+1} \rfloor$。
  • 新的余数是 $r_{i+2} = r_i - q_{i+1} r_{i+1}$。
  • 现在我们计算新余数对应的系数 $x_{i+2}, y_{i+2}$:

$r_{i+2} = (a x_i + b y_i) - q_{i+1}(a x_{i+1} + b y_{i+1})$

$r_{i+2} = a(x_i - q_{i+1} x_{i+1}) + b(y_i - q_{i+1} y_{i+1})$

  • 所以,我们得到了系数的递推关系:

$x_{i+2} = x_i - q_{i+1} x_{i+1}$

$y_{i+2} = y_i - q_{i+1} y_{i+1}$

  1. 终止:

当 $r_{i+1} = 0$ 时,迭代停止。此时的 $r_i$ 就是最大公约数 $d$,而对应的 $x_i, y_i$ 就是满足 $d = ax_i + by_i$ 的一对解。

伪代码:

```

function extended_gcd(a, b)

// 初始化

old_r, r = a, b

old_x, x = 1, 0

old_y, y = 1, 0 // 实际上 old_y 应该是 0, y 应该是 1

// 修正初始化

old_r, r = a, b

old_x, x = 1, 0

old_y, y = 0, 1

while r != 0:

quotient = old_r // r // 整除

// 更新 r

(old_r, r) = (r, old_r - quotient * r)

// 更新 x

(old_x, x) = (x, old_x - quotient * x)

// 更新 y

(old_y, y) = (y, old_y - quotient * y)

// 返回 g.c.d, x, y

return old_r, old_x, old_y

```

📝 [总结]

本题要求将扩展欧几里得算法从一个数学过程转化为一个计算机程序。最高效的实现方式是使用迭代方法,在计算辗转相除的每一步,同步更新贝祖等式的系数,最终得到最大公约数和对应的线性组合系数。

🎯 [存在目的]

本练习是理论联系实际的桥梁。它要求学生将一个抽象的数学算法具体化为可以执行的代码。这在现代数学,特别是密码学和计算机代数领域,是一项基本技能。实现该算法能加深对其中递推关系的理解,并直观感受到算法的执行流程。

111.10 练习 10

📜 [原文26]

  1. 证明对于任何给定的正整数 $N$,只有有限多个整数 $n$ 满足 $\varphi(n)=N$,其中 $\varphi$ 表示欧拉 $\varphi$-函数。由此得出结论,当 $n$ 趋于无穷大时,$\varphi(n)$ 趋于无穷大。
📖 [逐步解释]

第一部分:证明 $\varphi(n)=N$ 的解是有限的

  1. 分析 $\varphi(n)$ 的公式:

$\varphi(n) = n \prod_{p|n} (1-1/p) = n \frac{p_1-1}{p_1} \frac{p_2-1}{p_2} \dots \frac{p_s-1}{p_s}$

其中 $p_i$ 是 $n$ 的不同素因子。

  1. 寻找对 $n$ 的素因子的约束:
    • 如果 $n = p_1^{a_1} \dots p_s^{a_s}$,那么 $\varphi(n) = p_1^{a_1-1}(p_1-1) \dots p_s^{a_s-1}(p_s-1) = N$。
    • 如果 $p$ 是 $n$ 的一个素因子,那么 $(p-1)$ 必须整除 $\varphi(n)$,即 $(p-1) \mid N$。
    • 对于一个给定的 $N$,它的约数是有限的。因此,满足 $(p-1) \mid N$ 的素数 $p$ 的可能性也是有限的。这意味着任何满足 $\varphi(n)=N$ 的 $n$,其素因子只能从这个有限的素数集合中选取。
  2. 寻找对 $n$ 的素因子指数的约束:
    • 对于每个可能的素因子 $p$,我们来看它的指数 $a$。$p^{a-1}$ 也必须是 $N$ 的一个因子。
    • 如果 $p^{a-1} > N$,则不可能有解。这给 $a-1$ 设置了一个上限:$a-1 \le \log_p(N)$,所以 $a \le \log_p(N) + 1$。
    • 因此,对于每个可能的素因子 $p$,其指数 $a$ 也是有上界的,只能取有限个值。
  3. 结论:

既然满足 $\varphi(n)=N$ 的 $n$,其素因子的选择是有限的,并且每个素因子的指数也是有限的,那么通过这些素因子和指数组合起来构成的 $n$ 的总数也必然是有限的。

第二部分:证明 $\varphi(n) \to \infty$ 当 $n \to \infty$

  1. 使用反证法: 假设 $\varphi(n)$ 不趋于无穷大。
  2. 这意味着,存在一个常数 $M$,使得有无穷多个不同的整数 $n_1, n_2, n_3, \dots$ 满足 $\varphi(n_i) \le M$。
  3. 由于 $\varphi(n)$ 的值是整数,那么在 $[1, M]$ 这个区间内,$\varphi(n)$ 的取值是有限的。根据鸽巢原理,必然存在一个整数 $N \le M$,使得有无穷多个不同的整数 $n$ 满足 $\varphi(n)=N$。
  4. 但这与我们第一部分证明的结论(对于任何 $N$,满足 $\varphi(n)=N$ 的 $n$ 的个数是有限的)相矛盾。
  5. 结论: 我们的初始假设不成立。因此,当 $n \to \infty$ 时,$\varphi(n) \to \infty$。
📝 [总结]

该证明分为两步。第一步通过分析 $\varphi(n)$ 的计算公式,证明了对于任何给定的值 $N$,方程 $\varphi(n)=N$ 的解 $n$ 的素因子和它们的指数都受到严格限制,因此解的个数是有限的。第二步利用第一步的结论和反证法,证明了 $\varphi(n)$ 函数值不能一直停留在某个有界范围内,因此必须随 $n$ 的增大而趋于无穷。

🎯 [存在目的]

本练习探讨了欧拉函数作为一个整体的函数行为(它的值域和渐近性)。这是一种从“代数”(计算单个值)到“分析”(研究函数趋势)的思维转变。证明过程本身综合运用了 $\varphi$ 函数的性质、约数的概念和反证法,是数论分析中的一个典型例子。

111.11 练习 11

📜 [原文27]

  1. 证明如果 $d$ 整除 $n$,那么 $\varphi(d)$ 整除 $\varphi(n)$,其中 $\varphi$ 表示欧拉 $\varphi$-函数。
📖 [逐步解释]

这道题要求证明 $\varphi$ 函数在整除关系下的一个性质。我们可以使用基于素因数分解的公式来证明。

  1. 表示 $n$ 和 $d$:
    • 设 $n$ 的素因数分解为 $n = p_1^{a_1} p_2^{a_2} \dots p_k^{a_k}$,其中 $a_i \ge 1$。
    • 因为 $d \mid n$,所以 $d$ 的素因子必须是 $n$ 的素因子的子集。因此 $d$ 的分解式可以写成 $d = p_1^{b_1} p_2^{b_2} \dots p_k^{b_k}$,其中 $0 \le b_i \le a_i$ 对于所有的 $i=1, \dots, k$。
  2. 写出 $\varphi(n)$ 和 $\varphi(d)$:
    • $\varphi(n) = \varphi(p_1^{a_1}) \dots \varphi(p_k^{a_k}) = [p_1^{a_1-1}(p_1-1)] \dots [p_k^{a_k-1}(p_k-1)]$。
    • $\varphi(d) = \varphi(p_1^{b_1}) \dots \varphi(p_k^{b_k}) = [p_1^{b_1-1}(p_1-1)] \dots [p_k^{b_k-1}(p_k-1)]$。(注意:如果 $b_i=0$,则 $p_i$ 不是 $d$ 的因子,$\varphi(p_i^0)=\varphi(1)=1$。我们的公式 $p^{b-1}(p-1)$ 在 $b=0$ 时会给出 $p^{-1}(p-1)$,这不是整数,所以需要分情况讨论。或者使用更鲁棒的公式 $\varphi(m)=m\prod_{p|m}(1-1/p)$)

让我们用更清晰的方式处理:

我们需要证明 $\frac{\varphi(n)}{\varphi(d)}$ 是一个整数。

$\frac{\varphi(n)}{\varphi(d)} = \frac{\prod_{i=1}^k \varphi(p_i^{a_i})}{\prod_{i=1}^k \varphi(p_i^{b_i})} = \prod_{i=1}^k \frac{\varphi(p_i^{a_i})}{\varphi(p_i^{b_i})}$

  1. 检查每一项:

我们只需要证明对于每个素数 $p_i$,$\varphi(p_i^{b_i})$ 都整除 $\varphi(p_i^{a_i})$。

  • 情况 1: $b_i = 0$

此时 $d$ 不含 $p_i$ 因子。$\varphi(p_i^{b_i}) = \varphi(p_i^0) = \varphi(1) = 1$。显然 $1$ 可以整除任何整数,所以 $1 \mid \varphi(p_i^{a_i})$ 成立。

  • 情况 2: $b_i \ge 1$

此时 $p_i$ 也是 $d$ 的因子。我们有 $1 \le b_i \le a_i$。

  • $\varphi(p_i^{a_i}) = p_i^{a_i-1}(p_i-1)$
  • $\varphi(p_i^{b_i}) = p_i^{b_i-1}(p_i-1)$
  • 它们的商是 $\frac{p_i^{a_i-1}(p_i-1)}{p_i^{b_i-1}(p_i-1)} = p_i^{(a_i-1)-(b_i-1)} = p_i^{a_i-b_i}$。
  • 因为 $a_i \ge b_i$,所以 $a_i-b_i \ge 0$。因此 $p_i^{a_i-b_i}$ 是一个整数。
  • 所以,$\varphi(p_i^{b_i}) \mid \varphi(p_i^{a_i})$ 成立。
  1. 结论:

既然对于每一个素因子 $p_i$,比率 $\frac{\varphi(p_i^{a_i})}{\varphi(p_i^{b_i})}$ 都是一个整数,那么它们的总乘积 $\frac{\varphi(n)}{\varphi(d)}$ 也必然是一个整数。

这就证明了 $\varphi(d) \mid \varphi(n)$。

📝 [总结]

该证明的关键是利用 $\varphi$ 函数的积性,将问题分解为对单个素数幂的讨论。通过比较 $n$ 和其约数 $d$ 的素因数分解,我们可以证明,对于每个素数 $p$,$\varphi(p^b)$ 整除 $\varphi(p^a)$ 只要 $b \le a$。由此,整体的整除关系 $\varphi(d) \mid \varphi(n)$ 得以成立。

🎯 [存在目的]

本练习是检验对欧拉函数积性性质和计算公式的综合运用能力。这个性质在更高等的代数理论中(例如在研究有限域上的循环群的子群结构时)会再次出现。它揭示了 $\varphi$ 函数与整数的整除结构之间存在着一种和谐的、可继承的关系。