问题描述
牛客网 HJ60 查找组成一个偶数最接近的两个素数 (opens in a new tab),难度简单。
描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
数据范围:输入的数据满足
输入描述
输入一个大于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;
}
}