跳到主要内容
CalcMax

最大公因数计算器

结果

12

最大公因数

公因数
1, 2, 3, 4, 6, 12

最大公因数是一组数都能整除的那个最大的数。24、36、60 的最大公因数是 12:没有比 12 更大的数能同时整除这三个数,而能同时整除它们的数——1、2、3、4、6、12——就叫它们的公因数。这一页把两半都印出来,因为「最大」这件事单独说出来容易,验证起来难,而整张公因数表恰好就是验证:把三个数的因数各列一遍,取三行里都出现的那几个,最大的那个就是答案。算它有三条路。第一条是列因数,也就是上面那条,参考表里对着 24、36、60 走了一遍。第二条是质因数分解:把每个数拆成质数的乘积,只保留大家都有的那些质数,而且取各数中指数最小的那一次——24 是 2³ × 3,36 是 2² × 3²,60 是 2² × 3 × 5,三者都有的是 2² 与一个 3,所以答案是 2² × 3 = 12。这条路的优点是它解释了答案为什么是它,数大但好在拆的时候用它。第三条是欧几里得算法(也叫辗转相除法):不断用余数替换较大的那个数,1071 与 462 走下来是 1071 → 147 → 21,最后一个非零余数就是答案。它完全不需要分解质因数,所以数大到没法一眼拆开时,能用的只有它。只有公因数 1 的两个数叫互质,它们的最大公因数就是 1——9 与 20 互质,任意两个相邻的整数也一定互质。这个数最日常的用途是约分:24/36 的分子分母同除以 12 得到 2/3,就是同一个数用最小的分母写出来。三个以上的数不是一个新方法,是把前两个的结果拿去和第三个再算一次,2–10 个数都这么折叠,所以页面对三个数给出的答案和任取其中两个起手是一样的。

24、36、60 的因数与质因数分解——也就是默认值那一组

数质因数分解因数
242^3 * 31, 2, 3, 4, 6, 8, 12, 24
362^2 * 3^21, 2, 3, 4, 6, 9, 12, 18, 36
602^2 * 3 * 51, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60

把因数那一列竖着读,三行都出现的就是公因数:1、2、3、4、6、12,其中最大的那个就是答案。分解那一列是同一件事的第二种说法,而第二种说法才是数大了以后能用的那种:公共的质数是 2² 与 3,乘起来是 12。注意取的是每个公共质数里指数最小的那一次,不是最大的——36 有 3²,而 24 只有 3¹,公因数得同时整除 24,所以只能带一个 3。还要注意 60 带来了另外两个数压根没有的质数 5,它直接从答案里消失:公因数要整除表里每一个数,任何一个数缺的质数,答案里也就不会有。这张表不跟着你填的数走——上面的面板回答你填的那些,这张表展示的是三条路在同一个例子上的会合点。

公式

24 = 2³ × 3,36 = 2² × 3²,60 = 2² × 3 × 5 ⇒ 最大公因数 = 2² × 3 = 12,三个数的公因数是 1、2、3、4、6、12

24、36、60
要比的几个数,2 到 10 个,每个都是 1 到 1000000 之间的整数。用空格、逗号或分号隔开都行,24 36 60 与 24, 36, 60 是同一份输入。小数和分数一律拒绝而不是四舍五入,0 也拒绝——gcd(0, 0) 在不同教材里有不同的约定,这一页不替读者挑一个
2³ × 3
24 的质因数分解:三个 2 乘一个 3。1 以上的每个整数都只有一种这样的拆法,这正是第二条路能成立的原因
2² × 3
三份分解里都有的那一部分:两个 2 与一个 3,也就是 4 × 3 = 12。规则是取每个公共质数指数最小的那一次,不是最大的——公因数得整除每一个数,所以它不能超过其中最吝啬的那一个所允许的
1、2、3、4、6、12
全部公因数,从小到大。最后一个就是最大公因数,而这张表本身就是核对:12 能整除 24、36、60,而排在它后面一位的 18 只整除 36
gcf(a, b, c) = gcf(gcf(a, b), c)
三个以上的数怎么处理:一次两个,把已经算出来的结果拿去和下一个数再算。它不是另一种方法,就是两数的方法反复用,所以页面对三个数给出的答案与从任意两个起手相同
互质
两个数除了 1 没有别的公因数,就叫互质,最大公因数是 1。9 与 20 互质,尽管两个数本身都不是质数;任意两个相邻的整数也一定互质

约分是最日常的用法:24/36 的分子分母同除以 12 就是 2/3,本仓库里每一个分数页的第一步都是它。把配方或图纸缩到最小的整数比例是同一件事换了衣服——24 : 36 : 60 与 2 : 3 : 5 是同一种混合,而后者才写得上标签。算术课上最大公因数是直接考的对象,而印出来的公因数表就是过程:它说明答案是比较出来的,不是猜出来的。另外两处不显眼的用途。用尽可能大的正方形地砖铺满一块长方形,问的就是最大公因数,答案是砖的边长。而在数论里,两个数互质是若干结论成立的条件,其中一条就是 RSA 加密背后的那条——模数与所用的指数互质,它才安全。数不顺手的时候,比如 1071 与 462,手拆质因数就不现实了,欧几里得算法接手;本页的算例把两条路都走了一遍,都得到 21。

算例

  1. 24、36、60 的最大公因数

    1. 24 的因数:1、2、3、4、6、8、12、24
    2. 36 的因数:1、2、3、4、6、9、12、18、36
    3. 60 的因数:1、2、3、4、5、6、10、12、15、20、30、60
    4. 取三行都出现的:1、2、3、4、6、12
    5. 其中最大的是 12,所以最大公因数是 12

    默认值,也是参考表整表走过的那个例子。换成质因数分解:24 是 2³ × 3,36 是 2² × 3²,60 是 2² × 3 × 5,三份都有的部分是 2² 与一个 3,乘起来还是 12。公因数那一行才是值得留着的一条——它是唯一能说明答案是「最大」而不只是「某个公因数」的输出,因为 8 与 9 各自能整除三个数里的两个,却都不是三个都能整除。

  2. 不顺手的一对数:1071 与 462

    1. 1071 ÷ 462 = 2 余 147
    2. 462 ÷ 147 = 3 余 21
    3. 147 ÷ 21 = 7 余 0——余数到 0 就停
    4. 最后一个非零余数是 21,所以最大公因数是 21
    5. 用分解核对:1071 = 3 × 7 × 51,462 = 2 × 3 × 7 × 11,公共部分是 3 × 7

    这一对就是欧几里得算法存在的理由:两个数都没法一眼拆开,手列因数又慢又容易错。四次除法就结束了。答案 21 也是同时整除这两个数的最大那个,而公因数表很短——1、3、7、21——这通常说明两个数共同的东西不多。

  3. 互质的一对数:9 与 20

    1. 9 的因数:1、3、9
    2. 20 的因数:1、2、4、5、10、20
    3. 两张表唯一共同的是 1
    4. 所以最大公因数是 1

    答案是 1 是真答案,不是算失败——这两个数互质。只要两个数没有任何共同质因数就会这样,而这件事很常见:任意两个相邻的整数一定互质,一个质数与任何不是它倍数的数也一定互质。这一页遇到互质的一对数时,返回的是最短的公因数表,只有一个 1。

  4. 同一个数配它自己:36 与 36

    1. 36 的因数:1、2、3、4、6、9、12、18、36
    2. 两个输入是同一个数,所以两张因数表一模一样
    3. 最大的公共因数是 36 本身

    答案的上界:一组数的最大公因数不可能超过其中最小的那个数,而当最小的数能整除其余所有数时,它正好取到这个上界。在输入里重复写同一个数不改变任何东西——36 与 36 的最大公因数是 36,与只填一个数一样。

局限

每个数都必须是 1 到 1000000 之间的整数,而且要有 2 到 10 个。0 是拒绝的,这是一个决定而不是疏忽:gcd(0, 5) 在一种常见约定里是 5,在另一些约定里没有定义,gcd(0, 0) 在一些教材里是 0、在其余教材里压根不定义——印出其中任何一个,对按另一套约定的读者就是错的,所以这一页改成要求正整数。负数出于同样的理由被拒绝:−24 与 36 的最大公因数在多数讲法里是 12,但符号规则是一套单独的约定,这一页不声明它。小数和分数一律拒绝而不是四舍五入:最大公因数是关于整数整除整数的陈述,而 2.5 ÷ 1.25 没有余数,那样算出来的答案没有意义。分隔符可以用空格、逗号或分号,混着用也可以;除此之外的字符会被当成数字的一部分,结果就是这串输入读不出来。下面那张参考表固定在 24、36、60 上,不跟着你填的数走——面板回答你填的数,表格展示的是方法。重复填同一个数允许,不影响结果。答案精确,从不四舍五入:这一页上的每个值都是整数,而且都远在机器能精确表示的范围内。

常见问题

最大公因数怎么手算?
把每个数的因数列出来,取都出现的那些里面最大的一个。24、36、60 的三张表共同的部分到 12 为止,所以答案是 12。数大一些时更快的路是欧几里得算法:用大数除以小数,把大数换成余数,重复到余数为 0——1071 与 462 走四次除法就得到 21。两条路给出同一个数,本页上面的算例两条都写了。
最大公因数是 1 是什么意思?
说明这两个数互质,这是正常答案而不是哪里出错了。9 与 20 没有任何共同的质因数,所以 1 是唯一能同时整除它们的数。这种情况很常见:任意两个相邻的整数都互质,一个质数与任何不是它倍数的数也互质。这种输入回来时,公因数那一行只有一个 1。
为什么这一页不接受 0 和负数?
因为答案会取决于一套这一页没有声明的约定。gcd(0, 5) 在多数教材里是 5,在另一些讲法里没有定义;gcd(0, 0) 在一些处理里是 0,在其余处理里根本不定义。负数还要另带一套符号规则。与其挑一套约定默默印出来,这一页改成要求从 1 开始的整数,这一段上所有资料的说法都一致。
质因数分解那条路是怎么走的?
把每个数拆成质数,再取在所有数里都出现的那些质数,每个取指数最小的那一次。24、36、60 都有的部分是 2² 与 3,所以答案是 12。指数必须取最小的理由是公因数要整除表里每一个数:36 有 3²,而 24 只有一个 3,多带一个 3 就整除不了 24 了。数不顺手时它比欧几里得算法慢,但它能解释答案为什么是它。
答案会不会比输入里最小的那个数还大?
不会。一组数的公因数必须整除其中最小的那个数,所以它不可能超过那个数;而当最小的数能整除其余所有的数时,答案正好取到这个上界。36 与 36 的最大公因数是 36,12、24、36 的最大公因数是 12。它也不会小于 1,因为 1 整除任何整数。
最大公因数有什么用?
最常见的用途是约分:把 24/36 的分子分母同除以 12 得到 2/3,就是同一个值用尽可能小的分母写出来。把比例缩小是同一步——24 : 36 : 60 与 2 : 3 : 5 是同一种混合。而两个数互质(也就是最大公因数为 1)是数论里若干结论成立的条件,其中一条就是 RSA 加密背后的那条。

参考资料

相关计算器