题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
import java.util.Scanner; public class Main { public static void main(String[] args) { // 任意一个偶数(大于2)都可以由2个素数组成, // 组成偶数的2个素数有很多种情况, // 本题目要求输出组成指定偶数的两个素数差值最小的素数对。 Scanner in = new Scanner(System.in); int n = in.nextInt(); int flag = 0;//差值最小时的小素数 int minDifference = n; //最小的素数是2 for (int i = 2; i <= n / 2; i++) { if (primeNum(i) && primeNum(n - i)) { //如果差值比最小值小,那么就替换最小值 if(Math.abs(2*i-n)<minDifference){ minDifference = Math.abs(2*i-n); //差值最小时的小素数也要更换 flag = i; } } } System.out.println(flag); System.out.println(n - flag); in.close(); } //写一个方法判断是否是素数 public static boolean primeNum(int n) { Boolean isFlag = true; for (int i = 2; i * i <= n ; i++) { if (n % i == 0) { isFlag = false; break; } } return isFlag; } }