在Number
对象的原型对象上添加"_isPrime
"函数,该函数判断调用的对象是否为一个质数,是则返回true
,否则返回false
<script type="text/javascript">
// 补全代码
Number.prototype._isPrime = function () {
// valueOf() 方法返回指定对象的原始值。
const num = this.valueOf()
// Number.isInteger() 方法用来判断给定的参数是否为整数
if (num < 2 || !Number.isInteger(num)) return false;
// Math.floor() 返回小于或等于一个给定数字的最大整数
// Math.sqrt() 函数返回一个数的平方根
for (let i = 2, ceil=Math.floor(Math.sqrt(num)); i <= ceil; i++) {
if (num % i === 0) {
return false
}
}
return true
}
</script>
思路:
在原型prototype上添加方法
先通过this.valueOf()获取调用该方法对象的原始值num
num小于2或者不是整数时返回false
然后进入循环,i初始值为2 ,不需要遍历到最后,遍历到原数值的1/2处 即可判断出它是不是质数
遍历过程中若num能被i整除,返回false
其余情况返回true