这个问题,我们不妨从“公约数”和“最大公约数”这两个概念本身来掰扯掰扯。别看它们听起来有点绕,其实道理一点也不复杂,甚至可以说是顺理成章。
想象一下,你面前有两堆弹珠,比如一堆有 12 颗,另一堆有 18 颗。你想把它们分成若干个一样大小的小份,同时要保证每份里的弹珠数量都得是整数,而且两堆弹珠都要能被这样分完。
这时候,“公约数”就派上用场了。公约数是什么意思呢?就是那些既能整除第一个数,又能整除第二个数的数。回到弹珠的例子,比如你想把 12 颗和 18 颗弹珠分成每份 2 颗的小份,那 2 就是一个公约数,因为 12 ÷ 2 = 6,18 ÷ 2 = 9,都能整除,说明每堆弹珠都能被分成份数是 2 颗的小份。同样,3 也是公约数(12÷3=4,18÷3=6),6 也是公约数(12÷6=2,18÷6=3),1 也是公约数(任何数都能被 1 整除)。
那“最大公约数”呢?顾名思义,它就是所有公约数里面,那个最大的数。在刚才的例子里,12 和 18 的公约数有 1、2、3、6。这些数里,最大的就是 6。所以 6 就是 12 和 18 的最大公约数。
现在,我们来回答核心问题:为什么两个数的公约数,一定都是它们最大公约数的约数?
我们可以这么想:假设有两个数,我们称它们为 $a$ 和 $b$。我们知道 $d$ 是 $a$ 和 $b$ 的一个公约数。这意味着什么呢?意味着 $a$ 可以被 $d$ 整除,也就是说,$a = d imes k_1$,其中 $k_1$ 是一个整数。同时,$b$ 也可以被 $d$ 整除,也就是说,$b = d imes k_2$,其中 $k_2$ 是一个整数。
好了,我们再引入最大公约数(GCD,Greatest Common Divisor)。我们设 $g = ext{GCD}(a, b)$。根据最大公约数的定义,它一定也是 $a$ 和 $b$ 的一个公约数。所以,根据刚才的推论,$a$ 也能被 $g$ 整除,也就是说 $a = g imes m_1$,其中 $m_1$ 是一个整数。同样,$b$ 也能被 $g$ 整除,也就是说 $b = g imes m_2$,其中 $m_2$ 是一个整数。
关键就在这里了。因为 $g$ 是 $a$ 和 $b$ 的最大公约数,这意味着所有 $a$ 和 $b$ 的公约数(包括我们前面假设的那个公约数 $d$),都不可能比 $g$ 大。
我们可以利用一个重要的数学性质:如果一个数能整除两个数,那么它也能整除这两个数的线性组合。
也就是说,对于任意整数 $x$ 和 $y$,如果 $g$ 整除 $a$ 并且 $g$ 整除 $b$,那么 $g$ 也能整除 $a imes x + b imes y$。
现在,我们知道 $a = g imes m_1$ 并且 $b = g imes m_2$。
我们回到那个任意的公约数 $d$。我们有 $a = d imes k_1$ 和 $b = d imes k_2$。
我们知道 $g$ 是 $a$ 和 $b$ 的最大公约数。我们可以利用欧几里得算法的原理来理解。欧几里得算法的核心思想是:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。
换个角度想,我们知道 $g$ 是 $a$ 和 $b$ 的公约数,所以 $a$ 可以写成 $g$ 的倍数,比如 $a = g imes m_1$。同样,$b$ 也可以写成 $g$ 的倍数,比如 $b = g imes m_2$。
现在考虑 $d$,它是 $a$ 和 $b$ 的一个公约数。这意味着 $a$ 可以被 $d$ 整除,$b$ 也可以被 $d$ 整除。
我们可以把 $a$ 和 $b$ 写成 $a = d imes k_1$ 和 $b = d imes k_2$。
现在,我们知道 $g$ 是 $a$ 和 $b$ 的最大公约数。而 $d$ 是 $a$ 和 $b$ 的一个公约数。
反过来想,如果 $d$ 不是 $g$ 的约数,会怎么样?如果 $d$ 不是 $g$ 的约数,那就意味着 $g$ 除以 $d$ 会有余数。
但是,我们可以这样理解:任何一个公约数 $d$,都可以被看作是“分割”了 $a$ 和 $b$ 的某种“单位”。而最大公约数 $g$,则是这些“单位”里最大的那个。
如果 $d$ 是 $a$ 和 $b$ 的公约数,那么 $a = dx_1$ 且 $b = dx_2$ ($x_1, x_2$ 为整数)。
我们知道 $g$ 是 $a$ 和 $b$ 的最大公约数。根据贝祖定理,存在整数 $s$ 和 $t$,使得 $g = sa + tb$。
把 $a = dx_1$ 和 $b = dx_2$ 代入贝祖定理的等式:
$g = s(dx_1) + t(dx_2)$
$g = d(sx_1 + tx_2)$
你看,这里 $sx_1 + tx_2$ 也是一个整数,我们就叫它 $k'$ 吧。
所以,$g = d imes k'$。
这直接说明了什么?这说明 $g$ 一定能被 $d$ 整除,换句话说,$d$ 是 $g$ 的一个约数。
这个结论其实非常自然,就像你有一个大蛋糕(最大公约数),这个大蛋糕是由若干个小份(任意公约数)组成的。如果这些小份(任意公约数 $d$)是分完整个蛋糕(最大公约数 $g$)的“基本单位”,那么这些小份自然也得是能把大蛋糕整除的。
简单来说,就是因为 $g$ 包含了 $a$ 和 $b$ 的所有共同的“因子”的最高次方,而任何一个公约数 $d$ 只能包含这些共同因子的一部分,或者这些因子的较低次方。所以,你能把 $g$ 这个“大块头”拆分成若干个 $d$ “小块头”,但反过来就不一定了,因为 $d$ 的“分解能力”可能不如 $g$ 那么强。
所以,这个道理就像是,如果一个东西能被两种方式(比如 12 和 18)同时整除,那么能同时整除这两种方式的“最大数量”(最大公约数),自然也能被所有“普通数量”(任意公约数)整除。因为那些“普通数量”本身就是“最大数量”的一部分构成要素。
用弹珠的例子再回味一下:6 颗弹珠可以分成 2 颗一份,也可以分成 3 颗一份。因为 6 是 12 和 18 的最大公约数,12 和 18 的所有公约数(1, 2, 3, 6)都是 6 的约数。你不能说 2 颗一份或者 3 颗一份的分法,在 6 颗这个“最大份”里无法实现。因为 6 本身就是由这些“小份”组合起来的。