题解 | #查找组成一个偶数最接近的两个素数#

查找组成一个偶数最接近的两个素数

https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        // 输入
        int num = Integer.parseInt(str);
        TreeMap<Integer, String> treeMap = new TreeMap<>();
        for (int i = 1; i <= num / 2; i++) {
            // 如果素数
            if (judgeIsNum(i)) {
                int j = num - i;
                // 判断另外一个是不是素数
                if (judgeIsNum(j)) {
                    int result = j - i;
                    treeMap.put(result, i + "," + j);
                }
                continue;
            }
        }
        // 遍历结果,获取第一个最小值就可以
        Set<Integer> set = treeMap.keySet();
        for (Integer key : set) {
            String res = treeMap.get(key);
            String[] split = res.split(",");
            for (int i = 0; i < split.length; i++) {
                System.out.println(split[i]);
            }
            break;
        }

    }
    // 判断一个数是否是素数
    public static boolean judgeIsNum(Integer integer) {
        if (integer == 1 || integer == 2 || integer == 3) {
            return true;
        }
        for (int i = 2; i < integer; i++) {
            if (integer % i == 0) {
                return false;
            }
        }
        return true;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 11:27
明天又是董事长面,啥时候是个头啊
在太阳里长大的人:公司就仨人吧😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务