题目:
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,
要求输出组成指定偶数的两个素数差值最小的素数对
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
int one = 0;
int two = 0;
int min = Integer.MAX_VALUE;
while (scanner.hasNext()) {
int num = scanner.nextInt();
for (int i = 2; i < num; i++) {
if (isS(i) && isS(num - i)) {
if (Math.abs(num - i - i) < min) {
one = i;
two = num - i;
min = Math.min(two - one, min);
}
}
}
System.out.println(one);
System.out.println(two);
}
}
private static boolean isS(int i) {
for (int j = 2; j <= Math.sqrt(i); j++) {
// 不是素数
if (i % j == 0) {
return false;
}
}
// 是素数
return true;
}