public class Test {
public static void main(String[] args) {
boolean flag=true;
for(int n=8;n<=1000;n+=2) {
int m=Split(n);
if(0 == m) {
flag = false;
break;
}else {
System.out.printf("%d=%d+%d\n",n,m,n-m);
}
//System.out.printf("哥德巴赫猜想"+(flag==true?"成立":"不成立"));
}
}
/**
* 判断一个数能否分解为两个素数之和
* @param n待判断的数
* @return 分解之后的一个数,0表示分解失败
*/
private static int Split(int n) {
for(int m=2;m<=n/2;m++) {
if(isPrime(m)&&isPrime(n-m)){
return m;
}
}
return 0;
}
private static boolean isPrime(int n) {
int m = (int)Math.sqrt(n);
for (int i = 2; i <= m; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
public static void main(String[] args) {
boolean flag=true;
for(int n=8;n<=1000;n+=2) {
int m=Split(n);
if(0 == m) {
flag = false;
break;
}else {
System.out.printf("%d=%d+%d\n",n,m,n-m);
}
//System.out.printf("哥德巴赫猜想"+(flag==true?"成立":"不成立"));
}
}
/**
* 判断一个数能否分解为两个素数之和
* @param n待判断的数
* @return 分解之后的一个数,0表示分解失败
*/
private static int Split(int n) {
for(int m=2;m<=n/2;m++) {
if(isPrime(m)&&isPrime(n-m)){
return m;
}
}
return 0;
}
private static boolean isPrime(int n) {
int m = (int)Math.sqrt(n);
for (int i = 2; i <= m; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}