输入一个偶数 N(N<=10000),验证4~N所有偶数是否符合哥德巴赫猜想:任一大于 2 的偶数都可写成两个质数之和。如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。例如 10,10=3+7=5+5,则 10=5+5 是错误答案。
输入格式
第一行N
输出格式
4=2+2 6=3+3 …… N=x+y
输入输出样例
输入 #1
10
输出 #1
4=2+2
6=3+3
8=3+5
10=3+7
思路:
- 对于输入的偶数n,先从i=2开始,如果i为素数,得出k=n-i的值,再判断k是否为素数;如果i不为素数,则一直找到为素数的为止才开始判断k
代码实现:
package qwx.luogu;
import java.util.Scanner;
public class P1304 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for (int i = 4; i <= n; i = i + 2) {
for (int j = 2; j < i; j++) {
if (issushu(j)) {
int k = i - j;
if (issushu(k)) {
System.out.println(i + "=" + j+"+"+k);
break;
}
}
}
}
}
public static boolean issushu(int x){
if (x==2)
return true;
for(int i=2;i<x;i++){
if (x%i==0){
return false;
}
else
continue;
}
return true;
}
}