题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
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;
}
}