js如何判断一个数字是否为质数

1、首先了解什么是质数(即:只能被1和它本身整除的数叫质数)

function isPrimeNum(num){
  for (var i = 2; i < num; i++) {
    if (num%i == 0){
      return false; //不是质数
    }
  };
  return true; //是质数
}

通过for循环来判断是否为质数,原理比较简单,通过2以上的数字不断和目标数字求余数,如果能得到0,就表示这是一个合数而不是质数.

不过这个运算量好像有点大

优化一下第一个方法

很简单嘛,一下子就实现了.但是,好像可以优化一下.我们好像不必一直追到这个数字去求余数,我们好像只需要循环到这个数的一半,就可以计算出来这个数字是不是质数了.

function isPrimeNum(num){
  for (var i = 2; i < num / 2 + 1; i++) {
    if (num%i == 0){
      return false; //不是质数
    }
  };
  return true; //是质数
}

你可能感兴趣的:(js如何判断一个数字是否为质数)