题目:
- 一个偶数总能表示为两个素数之和。
- (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" + 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 }