著名的哥德巴赫猜想是:每个不小于 6 的偶数都可以表示为两个奇素数之和。
例如16=3+13=5+11。下面需要你来编程验证一下哥德巴赫猜想是否正确。
Input
在输入一个偶数N(6<=N<=2000000000)。
Output
你需要输出两个奇素数,它们的和等于输入中的那个偶数,如果有多种选择,输出乘积
最大的。
例如 N == 16时,输出5 11,而不是3 13。
Sample Input
6
16
20
Sample Output
3 3
5 11
7 13
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45public class Test19 { public static void main(String[] args) { Scanner input = new Scanner(System.in); for (int k = 0; k < 3; k++) { System.out.print("请输入一个偶数N(6<N<2000000000):"); int N = input.nextInt(); int j, i, sum; int temp = 0; int maxI = 0; int maxJ = 0; Test19 test19 = new Test19(); for (i = 3; i <= N / 2; i += 2) { if (test19.isPrime(i) == true) { j = N - i; if (test19.isPrime(j) == true) { sum = i * j; } else { break; } } else { break; } if (temp <= sum) { temp = sum; maxI = i; maxJ = j; } } System.out.println(maxI + " " + maxJ); System.out.println("最大乘积数:" + temp); } } public boolean isPrime(int a) { boolean flag = true; for (int i = 2; i < a / 2; i++) { if (a % i == 0) { flag = false; } else { flag = true; } } return flag; } }
最后
以上就是务实世界最近收集整理的关于Java编程序哥德巴赫猜想的全部内容,更多相关Java编程序哥德巴赫猜想内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复