任务描述
本关任务:验证 7-100(含 7 不含 100)之间的数是否符合哥德巴赫猜想。
哥德巴赫猜想:任一大于 6 的正整数都能分解成两个素数之和。
素数:一个大于 1 的自然数,除了 1 和它自身外,不能被其他自然数整除的数。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
注意:无需考虑由两个以上素数组成的正整数,比如 11=7+2+2。
测试说明
平台将运行你编写的程序代码,若你的运行结果和预期输出一致,则通关。
预期输出:
7可分解为素数2和素数5
8可分解为素数3和素数5
9可分解为素数2和素数7
10可分解为素数3和素数7
10可分解为素数5和素数5
12可分解为素数5和素数7
13可分解为素数2和素数11
14可分解为素数3和素数11
14可分解为素数7和素数7
...
开始你的任务吧,祝你成功
思路在代码标注里,大一新生,不足之处,多多指教!
public class GeTest {
// 判断整数是否是素数
public static boolean isPrime(int x){ //构建一个求素数的类isPrime()
for(int y=2;y<x;y++){
if(x%y==0){
return false;
}
}
return true;
}
public static void main(String[] args) {
// 验证 7-100 之间的数符合哥德巴赫猜想
// 请在Begin-End间编写完整代码
/********** Begin **********/
for(int i = 7; i < 100; i++){ //列出所有可能值
for(int j = 2; j <= i/2; j++){ //找出每个列出可能值的前半部分的素数
if(isPrime(j)){
int k = i - j; //通过相减得到后半部分素数
if(isPrime(k)){ //若都为素数则说明满足猜想,输出
System.out.println(i+"可分解为素数"+j+"和素数"+k);
}
}
}
}
/********** End **********/
}
}