首页 > 华为OD机试题,本地跑没问题,平台上一个用例都不过
头像
牛客263587798号
编辑于 2020-02-27 16:59
+ 关注

华为OD机试题,本地跑没问题,平台上一个用例都不过

比较郁闷,一个用例都没过,题目没拷贝下来,大意如下,样例是准确的

如果一个整数可以分解成两个质数的和,求有这样的质数的组数,比如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) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐