需求:判断一个输入数是不是质数
分析:
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
}