题目描述
输入一个偶数 N(N<=10000)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
算法实现:
package test;
import java.util.Scanner;
//先写个判断质数的函数,后面方便调用。
class suanfa {
public static boolean isPrime(int n) {
for (int i = 2; i < n; i++) {
if (n% i == 0)
return false;
}
return true;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for (int i = 4; i <= n; i+=2) {
System.out.print(i+"=");
for(int j=2;j<n;j++){
//这里调用函数,类型为bool,i-j为另一个质数,j是最小的质数
if(isPrime(j)&&isPrime(i-j)){
System.out.println(j+"+"+(i-j));
break;
}
}
}
}
}