接上文经典面试2,继续说:同样的是一次的面试,在这一次的笔试中遇到了一个算法问题:写一个isPrime()函数,当其为质数时返回true,否则返回false。
function isPrime(num){
//需要判断你输入的数字是否为整数,但是整数中不能是负数,也不能是0和1
if (typeof(num) != 'number' || !Number.isInteger(num)) {
return false;
}
if(num < 2){
return false;
}
if(num === 2){
return true;
}else if(num % 2 === 0){
return false;
}
let squareRoot = Math.sqrt(num);
if(let i = 3; i <= squareRoot; i += 2){
if(num % i === 0){
return false;
}
}
return true
}
Number.isPrime(23.0);//true
Number.isPrime(23.1);//false
Number.isPrime("23.0");//false
Number.isPrime(undefined);//false
这里主要用了ES6中的Number.isInteger(num)的方法,予以借鉴;
本文纯属原创;
分类:经典面试题经历;