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

问题描述

牛客网 HJ60 查找组成一个偶数最接近的两个素数 (opens in a new tab),难度简单

描述

任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。

数据范围:输入的数据满足4n10004 \leq n \leq 1000

输入描述

输入一个大于2的偶数

输出描述

从小到大输出两个素数

示例 1

输入:20
输出:7
13

示例 2

输入:4
输出:2
2

题解

Main.java
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int k = in.nextInt();
        int left = k / 2, right = k / 2;
        while (true) {
            if (isPrime(left) && isPrime(right)) {
                System.out.println(left + "\n" + right);
                break;
            }
            left--;
            right++;
        }
    }
 
    private static boolean isPrime(int n) {
        if (n < 2) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}