题目
Description
德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对
Input
输入任意的>6的正偶数(<32767)
Output
试求给出的偶数可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对)
Sample Input
1234
Sample Output
25
代码块
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cn = new Scanner(System.in);
int n = cn.nextInt();
int counts = 0;
int j = n / 2;
for (int i = n / 2; i > 0; i--) {
if (isPrime(j) && isPrime(i)) {
if (j + i == n)
counts++;
}
j++;
}
System.out.println(counts);
}
//判断是否素数的函数
private static boolean isPrime(int n) {
if (n == 2)
return true;
if (n < 2 || n % 2 == 0)
return false;
int m = (int) Math.sqrt(n);
for (int k = 3; k <= m; k += 2)
if (n % k == 0)
return false;
return true;
}
}