public static void main(String[] args) {
boolean flag=
true;
for (
int n=
8;n<=
100;n+=
2){
int m=
split(n);
if (m==
0){
//can如果Split分解
flag=
false;
break;
}
else {
System.
out.printf(
"%d=%d+%d\n",n,m,n-m);
}
}
System.
out.printf(
"哥德巴赫猜想%s\n",flag?
"成立":
"不成立");
}
/**
* 判断一个偶数能否分解为两个素数之和
* @param n 待分解的数
* @return 0-不能分解,>0-能分解,并且分解之后的素数之一
*/
private static int split(
int n) {
for (
int m =
3;m<=n/
2;m+=
2){
if (
isPrime(m)&&
isPrime(n-m)){
return m;
}
}
return 0;}
private static boolean isPrime(
int n) {
for (
int i =
2; i <= n /
2; i++) {
if (n % i ==
0) {
return false;
}
}
return true;
}
转载请注明原文地址: https://www.6miu.com/read-2632369.html