輸入一個大於2的偶數,找到兩個素數,使他們之和等於這個偶數

在跟誰學筆試中遇到問題,應該算是哥德巴赫第一個猜想的應用吧。
德國人哥德巴赫在1742年提出的兩個猜想:

(1)每個大於2的偶數都是兩個素數之和;

(2)每個大於5的奇數都是三個素數之和。 

/**
 * 輸入一個大於2的偶數,找到兩個素數,使他們之和等於這個偶數。
 * @param number
 */
public static void findPrime(int number){
    if (number > 0 && number % 2 == 0){
        for (int i = 1; i < number / 2; i ++){
            if (isPrime(i) && isPrime(number - i)){
                System.out.println("第一個素數爲:" + i + " 第二個素數爲:" + (number - i));
                break;
            }
        }
    }
}

/**
 * 判斷一個數字是否爲素數
 * @param number
 * @return
 */
public static boolean isPrime(int number){
    boolean flag = true;
    //素數不包含1所以直接排除
    if (number == 1){
        flag = false;
        return flag;
    }
    for (int i = 2; i <= number-1; i ++){
        if ((number % i) == 0){
            flag = false;
            break;
        }
    }
    return flag;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章