描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
数据范围:输入的数据满足 4 \le n \le 1000 \4≤n≤1000
输入描述:
输入一个大于2的偶数
输出描述:
从小到大输出两个素数
示例1
输入:
20复制输出:
7 13复制
示例2
输入:
4复制输出:
2 2复制
package org.example.simple;
import java.util.Scanner;
public class Hj60 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
if (n >= 4 && n <= 1000 && n % 2 == 0) {
int[] nums = {0, 0};
int temp;
int minCount = Integer.MAX_VALUE;
for (int i = 2; i < n - 1; i++) {
if (checkPro(i) && checkPro(n - i)) {
if (i > n - i) {
temp = i - (n - i);
} else if (i == (n - 1)) {
temp = 0;
} else {
temp = n - i - i;
}
if(temp<minCount){
minCount = temp;
nums[0]=Math.min(i, n-i);
nums[1]=Math.max(i, n-i);
}
}
}
System.out.println(nums[0]);
System.out.println(nums[1]);
}
}
}
public static boolean checkPro(int n) {
boolean flag = true;
for (int i = 2; i < n; i++) {
if (n % i == 0) {
flag = false;
break;
}
}
return flag;
}
}