题目描述
哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数. 做好了这件实事,就能说明这个猜想是成立的. 由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.
输入格式
输入中是一些偶整数M(5<M<=10000000).
输出格式
对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数.
输入样例复制
在这里给出一组输入。例如:
20 30 40
输出样例复制
在这里给出相应的输出。例如:
7 13
13 17
17 23
import java.util.Scanner;
public class code1 {
public static boolean sushu(int x){ //定义一个判断是否为素数的方法
for (int i = 2;i < x;i++){
if (x % i ==0){
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m = in.nextInt();
for (int i = m / 2; i >=2 ;i--){ //从中间开始历数,以保证一对数为最近的素数
int n = m-i;
if(sushu(i)&&sushu(m - i)){
System.out.println(i + " " + n);
break;
}
}
}
}
以上就是我对本题的一个解法,如果大家有更好的解法欢迎在评论区分享!