别整那些虚头巴脑的开场白,直接上干货。 判断一个数是不是质数,这玩意儿实际上就是看它在“乘法表”里到底能不能被除完。咱们拿 7 当例子,整十的乘法表只有 10,动身往上数,7 自己乘自己还是 49,比 7 大;再往上 8 乘 8 就是 64,也>C7。
这意味着,7 没法被 2 到 6 这些数“整除”。数学上有个概念叫“最小原素因子”,好办说就是最小的那个能整除它的数。
要是一个数大于 1 的最小原素因子不小于它本身,那它就是质数。
要是能整除的数比它本身还大,那它肯定就是个数,自然不是质数。 这里有个关键点,得先搞清楚啥叫“整除”。
比如 6 除以 2 等于 3,商是整数且没有余数,这就是整除。而 20 除以 6,除不尽,这就是不整除。判断一个数能不能被某个数整除,实际上就是一个除法测试。
要是除尽,它就是原素因子;要是除不尽,它就不是。 咱们再举个例子,比如 17。从 2 启动试,2 除不尽,3 除不尽,4 除不尽,5 除不尽,6 除不尽,7 除不尽,8 除不尽,9 除不尽,10 除不尽,11 除不尽。一直试到 13,13 乘 13 是 169,大于 17。再往上 14 乘 14 就是 196,更大了。出于 17 是比它大的最小原素因子,并且它自己大于 1,故此 17 就是质数。 大量人好办犯的毛病是把“质数”和“合数”搞混,要么把大数当成质数。
实际上只要你的数够大,除了 1 和它自己以外,肯定能被某个小于它的数整除。举个直观的例子,假设你有一个数字 1000000000,这个数明明能被 2 整除,那它就绝对不是质数。
不管你如何想,只要存有除数,它就是合数。 还要提醒一下,除了 1 和它本身以外的合数,一定起码有一个原素因子。
这个原素因子务必小于或等于它本身的一半(对于大于 1 的合数来说)。
比如 10,它的最小原素因子是 2,2 肯定小于 5,出于 2 乘 5 等于 10。
要是是 9,它的最小原素因子是 3,3 小于 4.5。
这个规则叫“算术根本定理”的核心思想,好办说就是大数分解,只要找到一个能让商变成整数的因子,那就通了。 再说说如何判断一个具体的大数。
比如要判断一个数是不是质数,最快的办法不是啥复杂的公式,而是用试除法。从 2 启动,一直除到数的一半。
要是除尽,那就是合数;除不尽,那就是质数。
不过这里有个小窍门,要是这个数挺大,比如超过 1000,那 2 到数一半之间肯定有合数,要是那里面有一个原素因子,那这个数肯定不是质数。 实际上质数在 2 到 1000 之间的质数总共有 168 个,这个数字比你还记得吗?别记着数列,直接看能不能除。 比如 12,2 除尽,肯定不是质数。13 呢?2 到 6 除都不尽,7 除也不尽,8 到 12 都除不尽,故此 13 是质数。14 呢?2 除尽,直接排除。15?3 除尽,排除。16?2 除尽,排除。 在数学的世界里,质数就像那些独自站在悬崖上,哪位也动不了、哪位也拉不住,只能靠自己找钥匙的人。它们忒特殊了,不能随意组合。
要是你把两个质数加起来,要么乘起来,拿到的新数,一般都不是质数了。
比如 2 和 3,加起来是 5(质数),乘起来是 6(合数,最小原素因子是 2,小于 6)。但要是 5 和 5 加起来是 10,5 和 7 乘起来是 35,那 35 就是合数,它的原素因子是 5,5 等于它的原素因子,符合那个规则。 判断质数这事儿,本质上就是一种筛选。你要在无数个可能的除数里,只找出那个“最小”的,要么证明它“不存有”。对于小一点的数,手算要么用计算器试除凑合;对于大一点的数,就得借助算器要么更高级的算法了,比如用平方根限制范围,要么用米勒 - 拉宾算法。
不过对于一般的人来说,只要知道从 2 启动,一直除到一半,看看能不能整除,这个逻辑就清楚了。 最终再唠叨一句,质数别看稀少,但密度挺低。在 1 到 10000 之间,只有 1229 个质数。在 10000 到 100000 之间,大约有 9592 个。
也就是说,99.9% 的数都不是质数,它们都是合数。
这反映了数学中一种普遍的现象:大局部情况下,东西都会分解,极少的是无法分解的。 故此,下次要是你看到一个数,别急着下结论。先看看能不能被 2 整除,2 是唯一的偶质数,要是整除,直接排除。再看能不能被 3 整除,3 是最小的奇质数。持续往下试,直到你确认找不到任何能除尽它的数为止。
要是真找不到,那它就是质数。
这就是最朴素的原理,也是判断质数的黄金法则。