验证哥德巴赫猜想--java

import java.util.Scanner;

public class helloJava {
    private static void Goldbach(int inputNum){
        // 筛法求素数
        int[] array = new int[inputNum];
        for (int i=2; i<inputNum; ++i){
            array[i] = i;
        }
        for (int i=2; i<inputNum; ++i){
            if (array[i]!=0){
                int j, temp;
                temp = array[i];
                for (j=2*temp; j<inputNum; j += temp){
                    array[j] = 0;
                }
            }
        }

        // show result
        for (int i=2; i<inputNum; ++i){
            if (array[i]!=0 && array[inputNum-i]!=0){
                if (array[i] > array[inputNum-i]) break;
                System.out.println(inputNum + " = " + array[i] + "+" + array[inputNum-i]);
            }
        }
        System.out.println();
    }


    public static void main(String [] args){
        Scanner input = new Scanner(System.in);

        while (true){
            System.out.print("Input a number(>=6):");
            int inputNum = input.nextInt();
            if (inputNum<6 || ((inputNum+1)%2==0)){
                System.out.println("Input Wrong!");
            } else {
                Goldbach(inputNum);
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/AnonymKing/article/details/81136015