哥德巴赫猜想:每一个不小于6的偶数都是两个奇素数之和,在这里的关键就是把一个大于等于6的偶数分解成两个质数,把一个数分解成两个数之和很好办,但要是两个质数,我们就需要先掌握判断质数的方法。
判断质数:
public static boolean isPrime(int i){
if(i<2)
return false; //true代表是质数,false代表不是质数
if(i==2)
return true;
if(i%2==0)
return false;
for(int i1 =3;i1<i/2;i1+=2){
if(i%i1==0)
return false;
}
return true;
}
当掌握了判断质数的方法,后面的事情就很好做了。
完整代码:
public class ABC {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入一个大于等于6的偶数:");
int n =sc.nextInt();
while(n<6||n%2==1){
System.out.println("请重新输入:");
n=sc.nextInt();
}
for(int i =3;i<=n/2;i+=2){
if(isPrime(i)&&isPrime(n-i))//如果n的两个分解数是质数,则输出
{
System.out.println(n+"="+i+"+"+(n-i));
}
}
}
//判断i是否是质数
public static boolean isPrime(int i){
if(i<2)
return false;
if(i==2)
return true;
if(i%2==0)
return false;
for(int i1 =3;i1<i/2;i1+=2){
if(i%i1==0)
return false;
}
return true;
}
}
测试结果:
总结: 要想实现哥德巴赫猜想,就要掌握判断质数的方法,这是核心吧。