题目:证明任何大于6的偶数可以表示为两素数之和,如10=3+7。
ps:最近在看java基础,咳咳,由于我是个有基础的人,就做了一下书上这道题,做完以后在网上看不到合心意的答案,于是贴一篇自己的版本
题为偶数=素数1+素数2,偶数>6即从8开始,2虽然是特殊的素数,但是不可能是素数1或者素数2,那么素数1从3开始。
下面直接展示代码
:
public class Goldbach_question {//歌德巴赫
static boolean Is_prime(int a){//判断素数
for(int i=3;i*i<=a;i+=2)//只要求到sqrt(a)足够了,并且绕过偶数
if(a%i==0) return false;
return true;
}
public static void main(String[] args) {
for(int i=8;i<=100;i+=2)//只展示8-100
for(int j=3;j<=i/2;j+=2)//i/2为了去除5+3 3+5这种冗余数据
if(Is_prime(j)&&Is_prime(i-j)) {
System.out.println(j+" + "+(i-j)+" = "+i);
break;//只需要一组表示即可,因为一个偶数可能有很多组的素数相加而成
}
}
}
展示: