题目描述:
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对
Java实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int even = sc.nextInt();
int[] sushuPair = new int[2];
getMinSushuPair(even, sushuPair);
System.out.println(sushuPair[0]);
System.out.println(sushuPair[1]);
}
}
private static void getMinSushuPair(int even, int[] sushuPair) {
for (int i = even/2; i >=2; i--) {
int j = even-i;
if (isPrime(i) && isPrime(j)) {
sushuPair[0] = i;
sushuPair[1] = j;
return;
}
}
}
private static boolean isPrime(int num) {
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0)
return false;
}
return true;
}
}
关键点:
- 找到第一组值后要立即return