一个偶数总能表示为两个素数之和。

题目:一个偶数总能表示为两个素数之和。
*

思路: 产生一个随机偶数n 从2到n找素数 找到两个素数求和,如果和等于偶数,则打印出两个素数

public class 第四十四题一个偶数总能表示为两个素数之和 {
    public static void main(String[] args) {
        /**
         * 思路: 产生一个随机偶数n 从2到n找素数 找到两个素数求和,如果和等于偶数,则打印出两个素数
         */
        // 产生一个从2到2000之间的随机偶数
        int n =  ((int)(Math.random() * 1000 + 1) * 2);
        int a = 0;
        int b = 0;
        for (int i = 2; i < n; i++) {
            if (isPrime(i)) {
                a = i;
            }
            for (int j = 2; j < n; j++) {
                if (isPrime(j)) {
                    b = j;
                    if (n == (a + b)) {
                        System.out.println(n + "=" + a + "+" + b);
                        return;
                    }
                }

            }
        }
    }

    // 判断一个数是否为素数
    public static boolean isPrime(int n) {
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n == 2) {
                return true;
            } else if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

猜你喜欢

转载自www.cnblogs.com/zjulanjian/p/10952725.html