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

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

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

//注意两个地方

//目前最小差值=初始差值(这个都不会犯错,迭代器拿就行,然后键取值)

//目前减数=初始减数(这个别赋成0,迭代器拿出来的那个直接赋就行了)

import java.util.*;

public class Main{

public static void main(String[]args){

    int n=new Scanner(System.in).nextInt();
    LinkedHashMap<Integer,Integer> jzd=new LinkedHashMap<>();
    LinkedHashMap<Integer,Integer> czd=new LinkedHashMap<>();
    for(int j=2;j<n-1;j++){
        if(ps(j)&&ps(n-j)){
           if(!(jzd.containsKey(j)||jzd.containsValue(n-j))){
               jzd.put(j,n-j);
               czd.put(j,Math.abs(n-j*2));
           }
        }
    }
   
    
   Set<Integer> set= czd.keySet();
    int no1= set.iterator().next();
    int d=czd.get(no1);
    int dk=no1;
    for(int k:set){
        if(czd.get(k)<d){
            d=czd.get(k);
            dk=k;
        }
    }
    
    if((n-dk)>dk){
        System.out.println(dk);
        System.out.println(n-dk);
    }else{
        
        System.out.println(n-dk);
        System.out.println(dk);
    }
    
}

public static boolean ps(int i){
    if(i==1){return false;}
    for(int j=2;j<i;j++){
       if(i%j==0){return false;
                 } 
       }
    
return true;
}

}

全部评论

相关推荐

11-24 11:23
门头沟学院 C++
点赞 评论 收藏
分享
尊尼获获:闺蜜在哪?
点赞 评论 收藏
分享
粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务