HDU 2098 分拆素数和
2022-04-05 本文已影响0人
itbird01
Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30 26 0
Sample Output
3 2
java code
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 用hasnextint,不然会error
while (scanner.hasNextInt()) {
int n = scanner.nextInt();
if (n == 0) {
break;
}
int number = 0;
// 两个不同的素数
for (int i = 2; i < n / 2; i++) {
if (isSuShu(i) && isSuShu(n - i)) {
number++;
}
}
System.out.println(number);
}
scanner.close();
}
//判断素数的方法
public static boolean isSuShu(int n) {
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}```