用开根号法快速判断一个数是否为质数

发布时间:
2024-04-13

“质数”与“合数”是小学数学中的重要概念。质数又称为素数,是指在一个大于1的自然数中,除了1和它本身外,没有其他自然数能整除该数的数;合数是指一个大于1的自然数,除了1和它本身外,还能被其他自然数整除的数。

100以内不能被2、3、5、7整除的数就是质数。

 

对于“质数”概念的理解,其实并不难。但是,如何判断一个给定的数字是否是质数,让很多同学伤透了脑筋。

 

当然,如果我们按照质数的定义,对于一个给定的数字(比如17),我们可以用它去除以1、2、3、4、……一直到17的每一个整数,发现除了1和17自身外,没有其他可以整除的整数,那么17就是质数。

 

但是,如果这个数字比较大(比如667),我们按照同样的办法从1、2、3……依次试除到667,这将会是一个非常庞大的工作量。那有没有什么办法,能够让我们更加快速的判断一个数是否为质数呢?

 

这里介绍一种方法:开根号法。

 

我们知道,一个合数,一定含有小于或等于它平方根的因子,这并不难理解(如果它的所有质因子都大于它的平方根,那么其乘积必然会比这个数大,这是不合理的)。

 

因此,判断一个数是否是质数,只需要判断它是否能被小于它平方根的整数整除。如果不能,那么它就是质数;如果能,那么它就是合数。

 

我们仍然以667为例。667的平方根约等于25.8。因此,只需要判断667能否被从2到25的24个整数中的任意一个整数整除。如果可以,它就是合数。如果不能,则它就是质数。

 

 但是,依次试除24个数也很麻烦。还有再简单一些的办法吗?

 

有。

 

其实我们只需要试除这24个数中的质数就可以了。因为如果这些数中有它的合数因子,那么这个合数也一定能被拆分为几个质数的乘积,而这些质因子一定在这24个数中。

 

因此,从2到25的质数有:

 

2、3、5、7、11、13、17、23,一共8个。

 

当我们试除到最后一个数,会发现667=23x29,23是667的一个质因子。所以667是一个合数。

 

如果我们把667换成661,那么661的平方根约为25.7,要试除的也同样是上面的8个质数,最后发现没有一个可以整除。所以661是一个质数。

 

你看,如果按照定义,我们需要试除600多次,而用开根号法,我们仅仅试除了8次,就得到了答案。速度大大提升。

  

开根号发的有点是简单易懂,计算量小。但是对于特别大的数来说,依旧需要进行大量的除法运算。因此,这种方法的试用场景也是有限的。不过,对于我们中小学范围内的考试要求来说,这样的方法足够用了。

马上咨询课程顾问!

点击按钮添加课程顾问微信