题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
import java.util.Scanner;
/**
找一个数,相差最小的两个素数
*/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int num = in.nextInt();
solution(num);
}
}
private static void solution(int num) {
int min = Integer.MAX_VALUE;
int[] res = new int[2];
for (int i = 2; i < num; i++) {
if (isPrime(i) && isPrime(num - i)) {
if (Math.abs(num - i - i) < min) {
min = Math.abs(num - i - i);
res[0] = i;
res[1] = num - i;
}
}
}
System.out.println(res[0] + "\n" + res[1]);
}
private static boolean isPrime(int num) {
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
运用穷举法解决。
找出这个数所有的素数对,然后比较得到min
判断一个数是否为素数的办法:写for循环,停止条件是i<=该数的平方根,如果有数能被整除,则返回false