Java循环综合练习二之哥德巴赫猜想

任务描述

本关任务:验证 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 **********/
    }
}

猜你喜欢

转载自blog.csdn.net/Carolier/article/details/129573845
今日推荐