经典面试题3

2019-11-03  本文已影响0人  Marin_chen

        接上文经典面试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)的方法,予以借鉴;

本文纯属原创;

分类:经典面试题经历;

上一篇 下一篇

猜你喜欢

热点阅读