验证哥德巴赫猜想:任何⼀个⼤于6的偶数,都能分解成两个质数的和。要求输⼊⼀个整数,输出这个数能被分解成哪两个质数的和

    技术2022-07-11  123

    public class Test5 { public static void main(String[] args) { //1.将大于6的偶数拆分 int n = 8; for(int i = 2 ; i <= n / 2; i++) { if(check(i) && check(n - i)) { System.out.println(i + " \t " + (n - i)); } } //2.验证拆分后的两个数字是否为质数 boolean result = check(7); System.out.println(result); } public static boolean check(int n) { for(int i = 2 ; i <= n / 2 ; i++) { if(n % i == 0) { return false;//非质数 } } return true;//是质数 } } import java.util.Scanner; public class Test4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int n = sc.nextInt(); for(int i = 1; i <= n/2; i++) { int j = n - i; if(primeNumbers(i) && primeNumbers(j)) { System.out.println(n + " = " + i + " + " + j); } } } public static boolean primeNumbers(int n) { boolean falg = true;//初始化falg为true if(n < 3) {//2,3为最小的质数 falg = n > 1; } for(int i = 2; i <= Math.sqrt(n); i++) {//Math.sqrt(n) 为n的开方,如16的开方为4 if(n % i == 0) { falg = false; } } return falg; } }
    Processed: 0.011, SQL: 9