哥德巴赫猜想:任何一个大于2的偶数都可以表示成两个素数之和。
外层循环从4开始遍历,每次递增2,内层循环从2开始,每次递增1,判断是否两个数为素数且和是外层循环的数。
package _4InterestingPrime;
/*
哥德巴赫猜想
*/
public class _4_8 {
public static void main(String[] args) {
int cout=0;
//偶数开始,偶数可以分解成两个素数之和
for(int i=4;i<=1000;i+=2){
for(int j=2;j<=i/2;j++){
//素数
if(isPrime(j)&&isPrime(i-j)){
cout++;
System.out.print(j+"+"+(i-j)+"="+i+" ");
if(cout%5==0){
System.out.println();
}
break;
}
//没有满足条件,输出错误
if(j==i/2+1){
System.out.println("error");
}
}
}
//输出总个数
System.out.println(cout);
}
//判断素数
public static boolean isPrime(int n){
for(int i=2;i<=Math.sqrt(n);i++){
if(n%i==0){
return false;
}
}
return true;
}
}
结果: