哥德巴赫猜想:
任何一个大于 6 的偶数,都能分解成两个质数的和。要求输入一个整数,输出
这个数能被分解成哪两个质数的和。
例如:输入一个整数 14
输出结果:14=3+11
14=7+7
解题思路:
我们可以通过键盘输入一个值,用整型变量n保存,然后验证n这个整数满不满足哥德巴赫想
然后写一个函数,接收一个整数,验证这个数是不是质数,是返回true,否返回false
然后通过for循环,把从2到n的值遍历一下,只要在z到n之间,有两个数满足相加等于n,并且这两个数都是质数,就验证了哥德巴赫猜想
具体实现代码:
public static void main(String[] args) {
//通过键盘获取一个数
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个大于6的偶数");
int n = sc.nextInt();
//如果输入的值不是大于6的偶数,终止程序
if(n % 2 !=0 || n <= 6){
System.out.println("输入的值不满足条件");
return;
}
//for循环,把从2到n的值遍历出来
for(int a = 2; a < n;a++){
//判断a是不是质数
if(!prime(a)){
//保证a+b的和为n
int b = n - a;
//判断b是不是质数;并且把重复的项去掉
if(!prime(b) && a <=b){
//满足全部条件,打印到控制台
System.out.println(n +"="+a+" "+b);
}
}
}
}
//判断这个数是不是质数
public static boolean prime(int n){
boolean flag=false;
for(int j=2;j<= Math.sqrt(n);j++){
if(n%j == 0){
flag=true;
}
}
return flag;
}