比较郁闷,一个用例都没过,题目没拷贝下来,大意如下,样例是准确的
如果一个整数可以分解成两个质数的和,求有这样的质数的组数,比如18可以分解成7+11、5+13,即两组。
支持一次输入多行,以0结束输入,输出以"end"字符串结束,下面是样例
输入:
2
5
10
18
0
输出:
0
1
2
2
end
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextLine()) { int num = in.nextInt(); List<Integer> l = new ArrayList<>(); while (num != 0) { l.add(num); num = in.nextInt(); } in.nextLine(); for (Integer n : l) { int ret = 0; for (int i = 2; i <= n / 2; i++) { int j = n - i; if (isZhiShu(i) && isZhiShu(j)) { ret++; } } System.out.println(ret); } System.out.println("end"); } in.close(); } private static boolean isZhiShu(int num) { for (int i = 2; i <= num / 2; i++) { if (num % i == 0) { return false; } } return true; } }
全部评论
(14) 回帖