质数:只能被1和自己整除的数
普通判断质数算法
1 | function isPrime(num) { |
高效判断质数算法
上面的做法效率并不高,为什么呢?
对于每个数n,其实并不需要从2判断到n-1;
一个数若可以进行因数分解,那么分解得到的两个数一定是一个小于等于sqrt(n)
,另一个一定大于等于sqrt(n)
比如16可以被分解,那么是2x8,小于sqrt(16),也就是4.8大于4.而4x4都是等于sqrt(n)
所以其实我们遍历到等于sqrt(n)即可
1 | function isPrime2(num) { |