华为OD机试 Java 实现【查找组成一个偶数最接近的两个素数】【牛客练习题 HJ60】,附详细解题思路

在这里插入图片描述

一、题目描述

任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。

数据范围:输入的数据满足 4≤n≤1000 。

二、输入描述

输入一个大于2的偶数。

三、输出描述

从小到大输出两个素数。

四、Java算法源码

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    while (in.hasNext()) {
        int n = Integer.parseInt(in.next());
        int res = count(n);
        System.out.println(res);
        System.out.println(n - res);
    }
}

private static boolean isPrime(int num) {
    for (int i = 2; i <= num/i; i++) {
        if (num % i == 0) return false;
    }
    return true;
}

public static int count(int n) {
    int i = n/2, j = n - i;
    while (!isPrime(i) || !isPrime(j)) {
        i++;
        j--;
    }
    return j;
}

五、效果展示

华为OD机试 Java 实现【查找组成一个偶数最接近的两个素数】【牛客练习题 HJ60】,附详细解题思路_第1张图片


下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

你可能感兴趣的:(搬砖工逆袭Java架构师,java,华为,开发语言,学习,后端)