任务描述
本关任务:验证 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){
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 **********/
int n; // 定义一个整型变量n,用来存储要验证的偶数
for (n = 7; n <= 100; n += 1) { // 用一个for循环,让n从7开始递增到100,每次递增1
int a, b; // 定义两个整型变量a和b,分别用来存储两个质数
for (a = 2; a <= n / 2; a++) { // 用另一个for循环,让a从2开始递增到n/2,每次递增1
b = n - a; // 计算b=n-a
if (isPrime(a) && isPrime(b)) { // 判断a和b是否都是素数(可以调用isPrime方法)
System.out.println(n + "可分解为素数" + a + "和素数" + b); // 如果都是素数,则打印出n=a+b
}
}
}
/********** End **********/
}
}