求一个数的全部因数:约数个数、因数和与完全数判断
讲清楚怎么列出一个整数的全部因数,为什么成对出现只需试到平方根,以及因数个数、因数总和和质因数分解的关系,顺手判断质数与完全数,给学生和老师对作业。
求一个数的全部因数:约数个数、因数和与完全数判断
辅导小孩做数学题时,我最常被问的一句是:这个数的因数到底有几个,有没有漏。列因数听起来简单,真动手数,要么漏掉 1 和它本身,要么试到一半不知道还要不要往下试。这篇把求因数这件事讲透,顺带把因数个数、因数总和、质因数分解、质数和完全数都串起来。
因数到底是什么
因数,也叫约数,指的是能整除某个整数 N、余数为零的正整数。换句话说,如果 N 除以某个数除得尽,这个数就是 N 的一个因数。
以 36 为例,它的全部因数是:1、2、3、4、6、9、12、18、36,一共九个。你可以挨个验证:36 除以这九个数都没有余数,而 36 除以 5、7、8 都有余数,所以它们不在表里。这就是 /zh/t/divisors-calculator/ 直接给出的结果,输入 36,九个因数按升序排好。
这里要记住两个边界:1 是任何正整数的因数,这个数本身也是自己的因数。漏掉这两个里的任何一个,是列因数时最常见的错。7 的完整因数是 1 和 7,不是只有 7。
为什么成对出现,只要试到平方根
很多人列因数是从 1 一直除到 N,这没必要。因数其实是成对出现的:如果 a 是 N 的因数,那么 N 除以 a 也一定是 N 的因数,这两个数相乘正好回到 N。这一对就叫因数对。
36 的因数对是:1×36、2×18、3×12、4×9、6×6。注意 6×6,因为 36 是完全平方数,会出现一对两个数相同的情况。
关键在于:每一对里,较小的那个一定不超过根号 N。36 的平方根是 6,所以你只要从 1 试到 6,把 1、2、3、4、6 找出来,另一半 36、18、12、9 自动就有了。本来要试 36 次,现在只试 6 次。数越大,这个省法越划算:一个上百万的数,试到一千出头就够了。我自己写因数题答案时就靠这个,不然手算很容易在中间漏一个。
因数个数和因数总和怎么算
直接数因数表当然可以,但有更快的办法,这要用到质因数分解。
把 N 写成质数的幂相乘,再把每个指数加 1,然后相乘,就是因数个数。36 = 2² × 3²,因数个数等于 (2+1) × (2+1) = 9,正好对上前面那九个因数。同理 12 = 2² × 3¹,因数个数是 (2+1) × (1+1) = 6。考试时记住这个公式,不用把因数全列出来也能报出个数。想先看清楚一个数的质数构件,可以用 /zh/t/prime-factorization/ 拆开看。
因数总和也有公式,但日常更常用的是直接加。36 的因数加起来是 1+2+3+4+6+9+12+18+36 = 91。数论里把因数个数记作 τ 函数,因数总和记作 σ 函数,σ(12) = 28 就是这么来的。
顺手判断质数和完全数
因数表一摆出来,有两件事立刻能看出来。
第一是质数。如果一个数的因数只有 1 和它本身两个,它就是质数。37 的因数只有 1 和 37,所以 37 是质数;36 有九个因数,是合数。
第二是完全数。完全数指它等于自身真因数之和,真因数就是比它小的那些因数。最小的完全数是 6,真因数 1、2、3 加起来正好是 6。下一个是 28 = 1 + 2 + 4 + 7 + 14,再往后是 496 和 8128。这里容易混的是:6 的全部因数之和是 12,而真因数之和(不含 6 本身)才是 6,正是这点让 6 成为完全数,看题时要分清有没有把这个数本身算进去。
给学生和老师的几个用法
对学生,因数题最容易丢分的地方就是漏因数和把因数与倍数搞反。因数是能整除这个数的,绝不会比这个数大;倍数是用它乘出来的,只会越来越大。算完后用工具核一遍因数个数和因数对,基本能堵住这两个坑。
对老师,出题时可以反过来挑数:想要六个因数就用 12,想要奇数个因数就用完全平方数 36,想讲完全数就用 6 和 28。需要更复杂的计算可以配合 /zh/t/scientific-calculator/ 一起用。
求一个数的全部因数说到底只是三步:试到平方根、配出因数对、顺手看个数和总和。把这三步理顺,质数和完全数也就一并解决了。
Made by Toolora · Updated 2026-06-13