Scanner scanner = new Scanner(System.in); int num1 = scanner.nextInt(); if(num1 <= 6 || num1 % 2==1){ System.out.println("请输入大于6的偶数");//提示用户输入的数值应该大于六且为偶数 return; }
提示用户输入大于6的偶数
利用最笨的穷举,将获取的这个num1拆分 例如 :获取的数为100;(利用for循环实现) 它可以拆为:2+98 3+97 4+96 ...
for(int a = 2 ; a <= num1/2 ; a++){
int b = num1 - a;
因为是将偶数拆分为两个质数的和,同样的代码写在主函数内,一定是有冗余的。所以构造一个判断质数的函数,在对其进行引用。
static boolean isPrime(int x){
for(int i = 2 ; i < x;i++){
if(x % i == 0) return false;
}
return true;
}
整个程序的最终效果:
public class Goldbach { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num1 = scanner.nextInt(); if(num1 <= 6 || num1 % 2==1){ System.out.println("请输入大于6的偶数");//提示用户输入的数值应该大于六且为偶数 return; } for(int a = 2 ; a <= num1/2 ; a++){ int b = num1 - a; if(isPrime(a) && isPrime(b) ){//构造一个函数,来确保a和b都是质数 System.out.println(num1+"="+a+"+"+b); } } } static boolean isPrime(int x){ for(int i = 2 ; i < x;i++){ if(x % i == 0) return false; } return true; } }