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

题解:

  1. 因为是素数之间的判断,所以二话不说先写一个判断素数的方法
  2. 题目明确说: 输出组成指定偶数的两个素数差值最小的素数对,那我们就可以从中间向两边进行判断

假装这两个图是连起来的

import java.util.*;

 class Main {
    public static void main(String args[])  {
    	Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()) {
            int n = scanner.nextInt();
		  //向两边进行查找
            for(int i = n / 2; i > 0; i --) {
                if(isPrime(i) && isPrime(n - i) ) {
                    System.out.println(i);
                    System.out.println(n - i);
                    break;
                }
            }
        }
    }
   //判断素数
    public static boolean isPrime(int num) {
        for(int i = 2; i < num; i ++) {
            if( num % i == 0) {
                return false;
            }
        }
        return true;
    }
}