在跟誰學筆試中遇到問題,應該算是哥德巴赫第一個猜想的應用吧。
德國人哥德巴赫在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;
}