在JavaScript中求质数的时候,一般为了提高代码时效,我们会采用Math.sqrt(n)函数来代替n,那么为什么可以用它来代替呢?
我们都知道一个数是可以等于它的平方根相乘的。
所以,我们先设 n = Math.sqrt(n)*Math.sqrt(n)
,假设比 Math.sqrt(n)
小的数为 y
,再设一个待定的 x
,设 n = x*y
,因为 y
是小于平方根的,所以 x
一定大于平方根。
当我们用 for循环去遍历时,只需要遍历到 Math.sqrt(n)
即可,因为我们是从 2 开始遍历,一直到 Math.sqrt(n)
,中间一定会对 y
进行检验,而质数是只要不满足能被1和自身整除时就能判定这个数不是质数,所以,如果 2 - Math.sqrt(n)
之间有 y
,我们就能判定n不是质数,因为 y
既不是1也不是n。
JavaScript中质数(素数)求解时使用的Math.sqrt()函数
最新推荐文章于 2022-09-16 15:54:29 发布