算法学习记录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
}
posted @ 2020-11-19 15:24  ✔️zhangfl_go  阅读(153)  评论(0编辑  收藏  举报