概述
著名的哥德巴赫猜想是:每个不小于 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
public 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编程序哥德巴赫猜想所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复