题解 | #查找组成一个偶数最接近的两个素数#

查找组成一个偶数最接近的两个素数

https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9

import java.util.Scanner;

/**
找一个数,相差最小的两个素数
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) { 
            int num = in.nextInt();
            solution(num);
        }
    }

    private static void solution(int num) {
        int min = Integer.MAX_VALUE;
        int[] res = new int[2];
        for (int i = 2; i < num; i++) {
            if (isPrime(i) && isPrime(num - i)) {
                if (Math.abs(num - i - i) < min) {
                    min = Math.abs(num - i - i);
                    res[0] = i;
                    res[1] = num - i;
                }
            }
        }
        System.out.println(res[0] + "\n" + res[1]);
    }

    private static boolean isPrime(int num) {
        for (int i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
}

运用穷举法解决。

找出这个数所有的素数对,然后比较得到min

判断一个数是否为素数的办法:写for循环,停止条件是i<=该数的平方根,如果有数能被整除,则返回false

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务