直接遍历所有a+b=n的情况,判断a,b是否为素数,然后再取差值为最小值的情况。
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static boolean isprime(int n){ boolean one =true; for(int i=2;i*i<=n;i++){ if(n%i==0){ one = false; } } return one; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int min = Integer.MAX_VALUE; int a = 0,b=0; for(int i=2;i<n;i++){ if(isprime(i)&&isprime((n-i))){ if(Math.abs(n-i-i)<min){ min = Math.abs(n-i-i); a = i; b = n-i; } } } System.out.println(a); System.out.println(b); } }