查找组成一个偶数最接近的两个素数
实现代码:
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();/*** 思路:* 1. 从n/2开始向小数方向查找* 2. 对于每个数i,检查i和n-i是否都是素数* 3. 由于从中间开始找,找到的第一对素数就是差值最小的*/for (int i = n / 2; i >= 2; i--) {// 如果i和n-i都是素数,就找到了答案if (isPrime(i) && isPrime(n - i)) {System.out.println(i); // 输出较小的素数System.out.println(n - i); // 输出较大的素数break; // 找到就退出,因为这是差值最小的一对}}}/*** 判断一个数是否为素数* @param num 要判断的数* @return 如果是素数返回true,否则返回false*/private static boolean isPrime(int num) {// 小于2的数不是素数if (num < 2) return false;// 2是素数if (num == 2) return true;// 偶数(除了2)不是素数if (num % 2 == 0) return false;// 检查奇数因子,只需要检查到sqrt(num)for (int i = 3; i * i <= num; i += 2) {if (num % i == 0) {return false;}}return true;}