最近遇到的一个坑,判断数值是否为素数的时候,忘记考虑函数的封装性。
先上代码
function isPrime(num) {
// 不是数字或者数字小于2
if (typeof num !== "number" || !Number.isInteger(num)) { // Number.isInterget 判断是否为整数
return false;
}
// 2是质数
if (num == 2) {
return true;
} else if (num % 2 == 0) { //排除偶数
return false;
}
//依次判断是否能被奇数整除,最大循环为数值的开方
for (var i = 3; i <= Math.sqrt(num); i += 2) {
if (num % i == 0) {
return false;
}
}
return true
}
var num = Number(prompt('请输入要判断的数字:')) // Number用以转换数值
var re = isPrime(num);
alert(re)
这个坑出自,这句话的判断。
typeo