题目:一个偶数总能表示为两个素数之和。
(1)由于用除sqrt(n)的方法求出的素数不包括2和3,
(2)因此在判断是否是素数程序中人为添加了一个3。
1 public class _044SumEvenNumber { 2 3 public static void main(String[] args) { 4 sumEvenNumber(); 5 } 6 7 private static void sumEvenNumber() { 8 Scanner scanner = new Scanner(System.in); 9 int n = 0, i; 10 11 do { 12 System.out.println("请输入一个大于等于6的偶数:"); 13 n = scanner.nextInt(); 14 15 } while (n < 6 || n % 2 != 0); 16 17 for (i = 2; i <= n / 2; i++) { 18 if (fun(i) == 1 && (fun(n - i) == 1)) { 19 int j = n - i; 20 System.out.println("它是由这个组成:" + " " + n + "=" + i + "+" + j); 21 } 22 } 23 24 } 25 26 private static int fun(int a) { 27 28 int i, flag = 0; 29 if (a == 3) { 30 flag = 1; 31 return (flag); 32 } 33 for (i = 2; i <= Math.sqrt(a); i++) { 34 if (a % i == 0) { 35 flag = 0; 36 break; 37 } else { 38 flag = 1; 39 } 40 } 41 return (flag); 42 } 43 }