思路:从中间往两边找,一旦发现两个数都是素数,则输出。这两个数要保持和为目标值。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
int l=a/2;//左边值
int r=a/2;//右边值
while(l>=2){
if(isPury(l,r)){//若两个数都是素数
System.out.println(l);
System.out.println(r);
break;
}else{//l与r向两边扩展,但同时保持和为a。
l--;
r=a-l;
}
}
}
}
//判断两个数是否都是素数。
public static boolean isPury(int x1,int x2){
for(int i=2;i<x1;i++){
if(x1%i==0){
return false;
}
}
for(int j=2;j<x2;j++){
if(x2%j==0){
return false;
}
}
return true;
}
京公网安备 11010502036488号