验证歌德巴赫猜想:
对任何一个不小于6的偶数,总可以表示成两个奇素数的和
import java.util.Scanner;
/**
* 验证歌德巴赫猜想: 对任何一个不小于6的偶数,总可以表示成两个奇素数的和
* 素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数
* 假如a*b=c(a、b、c都是整数),那么我们称a和b就是c的因数
*
* @author SUMMER
*/
public class Que10 {
/**
* 判断a是否是一个素数
* @param a
* @return
*/
public static boolean judge(int a) {
boolean flag = false;
for (int i = 2; i < a; i++) {
if (a % i == 0) {
flag = false;//如果能够被2整除,则返回false
break;
} else {
flag = true;//否则返回true
}
}
return flag;
}
/**
* 主方法
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个随机的数值(任何一个不小于6的偶数)");
int number = scanner.nextInt();//提示用户输入一个数值
/**
* 判断,并输出验证内容
*/
if (number % 2 == 0 && number >= 6) {//如果输入内容为偶数且大于6则执行
for (int i = 2; i < number / 2; i++) {//将输入值对半拆分为前后俩部分
boolean x = judge(i);//依次判断前一部分数值
boolean y = judge(number - i);//依次判断后一部分数值,前后相加等于本身
if (x && y) {//若X,Y都是素数,则输出过程
System.out.println(i + "+" + (number - i) + "=" + number);
}
}
} else {
System.out.println("数值输入错误,请重新输入(验证基础是不小于6的偶数)");
}
}
}