算法学习记录02-判断一个输入数是不是质数

需求:判断一个输入数是不是质数

分析:

1.什么是质数?

只能被1和本身整除的数就是质数,1既不是质数也不是合数;

质数总是等于6x+1 或者 6x+5,x是大于等于1的自然数;

假如n是合数,必然存在非1的两个约数p1和p2,其中p1<=sqrt(n),p2>=sqrt(n),证明是不是质数可以循环到sqrt(n) 这部分就够了

2.关键代码点

function isPrime(number){
  if(number<=3){
    return number > 1
  }
  if(number % 6 != 1 && number % 6 != 5){
    return false
  }
  for(let i = 2;i<=Math.sqrt(number);i++){
    if(number % i === 0){
      return fasle
    }
  }
  return true
}
原文地址:https://www.cnblogs.com/angfl/p/14005820.html