如何判断一个数是不是素数?新手一看就懂的方法

如何判断一个数是不是素数?新手一看就懂的方法

要弄清楚如何判断一个数是不是素数,首先得明白素数的定义。素数是大于1的自然数中,除了1和它自身外,没有其他能整除它的数,像2、3、5、7都是典型的素数。与之相对的是合数,比如4、6,它们能被除1和自身外的其他数整除。这里有个常见误区,1既不是素数也不是合数,很多人刚开始容易搞错。

最基础实用的判断方法是试除法,操作起来很简单。碰到一个数n,先看它是否小于等于1,是的话直接确定不是素数;如果n是2或3,那肯定是素数,这两个是最小的素数。要是n比3大,先检查它是不是偶数,除了2之外的偶数都不是素数;再看末尾是不是0或5,这类数除了5本身外都能被5整除,也能快速排除。

剩下的情况就进入试除法的核心步骤,不需要试遍所有比n小的数,只需要试到n的平方根就行。因为如果n有大于平方根的因数,必然对应一个小于平方根的因数,试完小的这边就够了,而且只需试奇数,偶数已经排除过了。比如判断91,平方根约9.5,试3、5、7就行,其中7能整除91,所以91不是素数;而101试到9都不能被整除,就是素数。

如果要找一定范围内的素数,比如100以内的,埃氏筛法更高效。这是古希腊数学家发明的方法,先写下2到目标数的所有数字,然后依次划掉2、3、5、7等素数的倍数(除了自身),直到目标数的平方根,剩下的就是素数。但这种方法适合批量查找,单个数字判断还是试除法更方便。

其实大一点的数判断起来也不复杂,比如199,先确定它是奇数且末尾不是5,平方根约14.1,试3、7、11、13都不能整除,就知道它是素数。不过不能凭感觉判断,像121看着像素数,实际是11乘11的结果,169是13的平方,都得通过试除法才能准确识别。总之,如何判断一个数是不是素数,核心就是围绕“只有1和自身两个因数”,用排除法和试除法逐步验证。

平时算题或者整理数据时,总会碰到一些数字,比如 23、57、91,偶尔会好奇它们是不是素数。其实很多人对素数的概念有点模糊,更别说怎么判断了,今天就用最实在的方式聊聊如何判断一个数是不是素数。

先得弄明白素数到底是啥。简单说,素数就是大于 1 的自然数里,除了 1 和它自己之外,再也没有其他能整除它的数。像 2、3、5、7 这些数,随便找个数试试除一下,除了 1 和本身根本找不到其他因数,这就是素数。而 4 能被 2 整除,6 能被 2 和 3 整除,这些就不是素数,咱们叫它们合数。这里得特别提一句,1 既不是素数也不是合数,不少人刚接触时容易把 1 归到素数里,其实这是个常见的小误区。

搞懂了素数的样子,接下来就是怎么判断一个数是不是素数。最基础也最容易上手的方法叫试除法,听着好像挺专业,实际操作起来特别简单。比如碰到一个数 n,先看它是不是小于等于 1,要是的话直接就能确定不是素数。如果 n 是 2 或者 3,那不用多想,肯定是素数,这俩是最小的素数,也是很特殊的存在。

要是 n 比 3 大,先看看它是不是偶数,也就是能不能被 2 整除。除了 2 之外,所有偶数都不可能是素数,因为它们至少有 2 这个因数。再看它的末尾是不是 5,要是末尾是 0 或者 5,那除了 5 本身之外,其他这样的数都能被 5 整除,自然也不是素数。这两步能快速排除掉一大部分不是素数的数,节省不少功夫。

剩下的情况就得用试除法的核心步骤了。这时候不用把所有比 n 小的数都试一遍,只需要试到 n 的平方根就行。为啥呢?因为如果 n 有一个大于平方根的因数,那对应的肯定有一个小于平方根的因数,只要把小的这边都试完,就能确定有没有多余的因数了。而且试的时候不用一个个挨着试,只试奇数就行,毕竟偶数已经被排除过了。比如判断 91 是不是素数,先算 91 的平方根大概是 9.5,那只需要试 3、5、7 这几个奇数。91 除以 3 等于 30 余 1,除以 5 余 1,除以 7 正好等于 13,没有余数,所以 91 不是素数。再比如 101,平方根大概 10.05,试到 9 就行,101 除以 3、5、7、9 都有余数,那它就是素数。

除了单个数字的判断,要是想找一定范围内的素数,比如 100 以内的素数,还有个更高效的方法叫埃氏筛法。这个方法是古希腊数学家埃拉托斯特尼发明的,原理特别好理解:先把 2 到 100 的数都写下来,然后把 2 的倍数(除了 2 本身)都划掉,再把 3 的倍数(除了 3 本身)划掉,接着是 5、7,一直到 10 的平方根 10 为止。最后剩下没被划掉的数,全都是素数。不过这种方法更适合批量找素数,平时单个判断还是试除法最方便。

有人可能觉得大一点的数判断起来费劲,其实掌握了技巧也很简单。比如判断 199 是不是素数,先看它是奇数,末尾不是 5,平方根大概 14.1,那就试 3、7、11、13 这几个数。199 除以 3 余 1,除以 7 余 3,除以 11 余 10,除以 13 余 1,都不能整除,所以 199 就是素数。说白了,如何判断一个数是不是素数,关键就是抓住 “只有 1 和自身两个因数” 这个核心,再用排除法和试除法逐步验证。

很多人刚开始判断的时候会犯懒,比如看到大一点的奇数就觉得是素数,其实不然。像 121,看着像素数,实际它是 11 乘 11 的结果,属于合数。还有 169 是 13 的平方,这些数都需要通过试除法才能准确判断。所以说,判断素数没有捷径,但掌握了方法之后,不管遇到多大的数,都能一步步理清楚头绪。