Lao乾妈官方认证唯一女友:D 2019-03-14 17:19 采纳率: 85.7%
浏览 295
已采纳

这个问题用Java怎么实现啊?

用Java实现:

给定数字N(0< N < 10000)和数字M(0< M < 10000)

检查数字N是否为素数,如果是,检查M是否为N的各个位数之和。

比如N为17,是素数,则检查M是否等于8(1+7)

  • 写回答

4条回答 默认 最新

  • 再写三行 2019-03-14 17:44
    关注
    public boolean f(int N, int M) {
            boolean flag = true;   //判断是否是素数的标志
            for (int i = 2; i <= Math.sqrt(N); i++) { //Math.sqrt 是调用Math类中的sqrt方法,求一个数的平方根
                if (N % i == 0) {
                    flag = false;
                    break;
                }
            }
            //如果是素数则进行M=N个部分之和判断
            if (flag) {
                String str = String.valueOf(N);
                int sum = 0;
                for (int i = 0; i < str.length(); i++) {
                    sum += Integer.valueOf(String.valueOf(str.charAt(i))).intValue();
                }
                if (sum == M) {
                    return true;
                }
            }
            return false;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?