输入一个大于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;
}

 

你可能感兴趣的:(输入一个大于2的偶数,找到两个素数,使他们之和等于这个偶数)