OMG 让人伤筋动骨的面试题您有没有遇到呢 跟小仙女一起领略一下吧!

384 阅读2分钟

哈哈!小仙女决定正式开启自己的掘金之旅了,小仙女的内心甚是激动,希望能在掘金遇到更优秀的您哦!

作为一个初出茅庐的前端小白,首先必闯的一关就是面试,接下来就是小仙女在最近的面试中遇到的过的一道面试题,当时小仙女看到这个题感觉好简单,太简单了于是打开电脑飞速写起,但是至少写了四个版本一直没有得到面试官认可,当时在想这是什么神仙面试题就要打算放弃,但是在这时在突然在网上看到一个比较优秀的写法,于是拿来借鉴,最后的结果你们知道的。因为这个优秀的作者我学到了很多东西,这也是我为什么开启掘金之旅的重要原因了,哈哈哈!希望和你们分享更多的好东西,也希望遇到更多大牛学到更多的东西。真不好意思小仙女又在这里罗嗦了半天呀!
天气炎热,话不多说,下面跟小仙女一起直入主题吧!
大家肯定很期待小仙女要说的这个面试题是什么一起揭秘吧!

写一个函数,要求参数是一个1000000以内的整数,并判断这个整数是不是素数。注意:代码要优化执行效率,执行时间不能超过32毫秒

function adds(num) {
            var flag = true;
            var count = 0;
            if (num == 0 || num == 1) {
                console.log(num + " 不是素数");
            } else if (num % 2 == 0) {
                console.log(num + " 不是素数");
            } else {
                var sqrtNum = Math.sqrt(num);
                for (var i = 3; i <= sqrtNum; i += 2) {
                    count++;
                    if (num % i == 0) {
                        // count++;
                        flag = false;
                        break;
                    }
                }
                if (flag == true) {
                    console.log("当整数为 " + num + " 时,num不可以被i整除");
                    console.log(num + "是素数");
                } else {
                    console.log("当整数为 " + num + " 时,i为 " + i + "时,因为num/i== " + num / i + " ,所以num可以被i整除");
                    console.log(num + "不是素数")
                }
            }

            console.log("循环次数:" + count);
        }
        var nums = parseInt(prompt("请输入一个整数来判断是否为素数"));
        console.time("执行时间");
        adds(nums);
        console.timeEnd("执行时间");

以上代码纯属借鉴大佬代码哦,希望对未来需要面试的您们有所帮助要哟!