大厂Java笔试题之找出组成一个偶数最大的两个素数

题目:找出组成一个大于2的偶数最接近的两个素数。

比如 输入20 输出7 13

注意:这里有一个理论,任意一个大于2的偶数,都能找到2个素数,相加等于这个偶数。

java 复制代码
public class Demo10 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int[] number = getNumber(a);
            System.out.println(number[0]);
            System.out.println(number[1]);
        }
    }
    
    private static int[] getNumber(int num) { // 获取两个最接近的素数
        if (num % 2 != 0 || num <= 2) {
            throw new IllegalArgumentException("参数错误");
        }
        int initdiff = num;
        for (int i = 2; i < num; i++) {
            if (isSushu(i) && isSushu(num - i) && num >= (2 * i)) {
                int diff = num - 2 * i;
                if (diff < initdiff) {
                    initdiff = diff;
                }
            }
        }
        int num1 = (num - initdiff) / 2;
        int num2 = num - num1;
        int[] res = new int[2];
        res[0] = num1;
        res[1] = num2;
        return res;
    }

    private static boolean isSushu(int num) { // 判断是否素数
        if (num <= 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
}

如果大家需要视频版本的讲解,欢迎关注我的B站:

相关推荐
猿究院_夏燊3 小时前
Spring Bean 生命周期
java·后端·spring
Wang's Blog4 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
inrichtt4 小时前
第八课时:SPI总线揭秘:四线全双工通信的奥
c语言·数据结构·stm32·单片机·嵌入式硬件
信誓旦旦的程序猿4 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河4 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
Jlzn88884 小时前
华东电芯分选通道数怎么配才不堵线
java·人工智能·架构·自动化·制造
HPtiger4 小时前
数据结构——选择排序
数据结构·算法·排序算法
康实训5 小时前
老年评估仿真实训平台架构设计与老年人能力评估实训室教学落地实践
大数据·人工智能·算法·实训室·实训室建设
香吧香5 小时前
GRPC连接机制---长连接分析
java·网络与传输协议
DongQiShanRen5 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习