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

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

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

import java.util.*;

// 老八秘制小汉堡
public class Main {
    public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int i1 = scanner.nextInt();
            ArrayList<Integer> su = new ArrayList<>();
            for (int i = 0; i <i1; i++) {
                if (isPrime(i)){
                    su.add(i);
                }
            }
            LinkedHashMap<Integer, Integer> suhm= new LinkedHashMap<>();
            for (int i = 0; i <su.size(); i++) {
                for (int j = 0; j <su.size(); j++) {
                    if (su.get(i)+su.get(j)==i1&&suhm.get(su.get(i))==null){
                        suhm.put(su.get(i),su.get(j));
                    }
                }
            }
            LinkedHashMap<String, Integer> hm = new LinkedHashMap<>();
            for(Integer key:suhm.keySet()){
                String s = key + " " + suhm.get(key);
                hm.put(s,Math.abs(key-suhm.get(key)));
            }
            ArrayList<Integer> sort = new ArrayList<>();
            for(String key:hm.keySet()){
                sort.add(hm.get(key));
            }
            Collections.sort(sort);
            for(String key:hm.keySet()){
                if (hm.get(key)==sort.get(0)){
                    String[] split = key.split(" ");
                    System.out.println(Math.min(Integer.valueOf(split[0]),Integer.valueOf(split[1])));
                    System.out.println(Math.max(Integer.valueOf(split[0]),Integer.valueOf(split[1])));
                    break;
                }
            }

        }
    }
    public static boolean isPrime(int n) {
        if (n <= 3) {
            return n > 1;
        }
        //判断一个数能否被小于sqrt(n)的数整除
        int sqrt = (int)Math.sqrt(n);
        for (int i = 2; i <= sqrt; i++) {
            if(n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

全部评论

相关推荐

一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
爱看电影的杨桃allin春招:我感觉你在炫耀
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务