大厂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站:

相关推荐
Seven979 分钟前
剑指offer-22、从上往下打印⼆叉树
java
CoovallyAIHub14 分钟前
为什么85%的企业AI项目都失败了?
深度学习·算法·计算机视觉
ankleless14 分钟前
数据结构(03)——线性表(顺序存储和链式存储)
数据结构·考研·链表·顺序表·线性表
KarrySmile17 分钟前
Day8--滑动窗口与双指针--1004. 最大连续1的个数 III,1658. 将 x 减到 0 的最小操作数,3641. 最长半重复子数组
数据结构·算法·双指针·滑动窗口·不定长滑动窗口·最大连续1的个数·最长子数组
zc.ovo20 分钟前
图论水题4
c++·算法·图论
KyollBM25 分钟前
【Luogu】每日一题——Day20. P4366 [Code+#4] 最短路 (图论)
算法·图论
qqxhb26 分钟前
零基础数据结构与算法——第七章:算法实践与工程应用-金融算法
算法·风险评估算法·金融算法·交易策略算法·欺诈检测算法
A尘埃27 分钟前
企业级Java项目金融应用领域——保险系统(补充)
java·金融·保险系统
冬天vs不冷32 分钟前
Java基础(九):Object核心类深度剖析
java·开发语言·python
悟空聊架构1 小时前
我的网站被攻击了,被干掉了 120G 流量,还在持续攻击中...
java·前端·架构