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; }