面试现场:求素数

前两天被某家公司"骗"去面试(实际上是让我做笔试),随便答了答然后让我约了电话面。

图片说明

然后去了让我笔试,然后就是介绍公司(心态崩溃),不过来了,做!当天晚上约第二天面试

面试官:有个笔试题是求a-b范围的所有素数,你是怎么写的

我:暴力

面试官:怎么暴力

我:一个函数判断一个int数是不是素数,然后循环调用

面试官:怎么判断

我:就从2-n-1遍历。如果取余非0则返回false,否则继续,最后返回true

面试官:可以优化吗

我:可以,上限可以改成n/2,因为能被n-1整除也肯定能被n/2整除

面试官: 这...也行,还能再优化上限吗

我:可以,我想想,面试官在暗示我,上限还可以优化。既然除2还能优化,那怎么样呢(脑子飞速运转),有了,除2可以,那么除3、除4、除5都可以,这个上限是啥呢。哦,肯定是n开平方咯。答:上限就是i的平方小于等于n嘛

面试官:行,这个就先这样吧。继续下面的问题,巴拉巴拉,疯狂吹逼

附加代码如下:

public boolean fun(int n){

        if(n <= 3) return true;

        for (int i = 2;i * i <= n;i++){
            if (n % i == 0) return false;
        }
        return true;
    }

一天以后,收到了offer...

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务