java 输入任意一个偶数 利用哥德巴赫猜想 输出数字间隔最大的一组数

java 输入任意一个偶数 利用哥德巴赫猜想 输出数字间隔最大的一组数,第1张

package com.practice.test;

import java.util.Scanner;

public class Goldbach {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int a = cin.nextInt();
        int j = 0;
        int k = 0;
        int i = 0;
        int k1 = 0;
        int n = 0;
        boolean b = true;
        boolean c = true;
        if(a == 4){
            i = 2;
            j =2;
        }
        //如果是偶数4 则分解为两个2
        //输入的值为偶数,所以除去4,其他数的分解不能有2存在
        //所以i以3开始
        else {
            //判断第一个数是否为质数
            for (i = 3; i <= a; i++) {
                j = a - i;
                for(n = 2;n < i; n++){
                    b = true;
                    k = i % n;
                    if(k == 0 ) {
                        b = false; //如果是质数就继续,不是就退出循环
                        break;
                    }
                }
                //判断第二个数是否为质数
                for(n = 2; n < j ; n++){
                    c = true;
                    k1 = j % n;
                    if(k1 == 0 ) {
                        c = false;
                        break;
                    }
                }
                if (b && c) break; //i j都是质数才成立 否则循环继续
            }
        }
        System.out.println(i);
        System.out.println(j);
    }
}

每一次循环都要使设定的boolean为true 否则会出现逻辑错误

代码很多书写都不太规范,设定的变量值都是为了完成题目随便设置的,看着可能比较难受

总感觉代码比较冗长,并不是最好的解决方案。。。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/923828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存