哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个质数之和。
参考代码:
package com.js.math;
import java.util.Scanner;
/**
* 对于哥德巴赫猜想的验证<br/>
* 基本思路</br>
* 设n为大于等于6的一个偶数,可将其分解为n1和n2两个数,分别检查n1和n2是否为素数</br>
* 若都是素数,则该数得到验证。若n1不是素数,则不需要验证n2是否为素数</br>
* 检验n1=n1+2,直到n1=n/2为止
* @author js
*
*/
public class Goldbach1 {
public static void main(String[] args) {
int boundary = 0;
int n1 = 0;
int n2 = 0;
System.out.println("请输入验证范围...");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
boundary = scanner.nextInt();
for(int a = 6;a<=boundary;a+=2){
for(n1=2;n1<a/2;n1++){
n2 = a-n1;
if(judge(n1)&&judge(n2)){
System.out.println(a+"="+n1+"+"+n2);
break;
}
}
}
}
}
//判断是否为素数
public static boolean judge(int a){
boolean flag = true;
for(int i = 2;i<=Math.sqrt(a);i++){
if(a%i==0){
flag = false;
}
}
return flag;
}
}