题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
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