为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

人到中年有点甜 2019-04-19 22:19:59
用Java实现:给定数字N(0< N < 10000)和数字M(0< M < 10000)检查数字N是否为素数,如果是,检查M是否为N的各个位数之和。比如N为17,是素数,则检查M是否等于8(1+7)
查看完整描述

4 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

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;
    }


查看完整回答
反对 回复 2019-05-14
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

for(int i=2 ; i<=N;i++){ //最小的素数是2
if(a % i == 0&& i != a){ //除了1和本身之后没有约数即为素数
System.out.println("不是素数");
break;
}else if(i == a){

         System.out.println("是素数");
                    把N切开来相加判断就可以了
    }
    }



查看完整回答
反对 回复 2019-05-14
?
慕标5832272

TA贡献1966条经验 获得超4个赞

public class Test {

public static void main(String[] args) {
int numM = 8;
int digitNumN = 17;

if (isPrimeNumber(digitNumN, 10000)) {
  System.out.println(isDigitSum(digitNumN, numM));
}

}

/**

  • 判断num是不是素数 *

  • @param num

  • @return
    */
    public static boolean isPrimeNumber(int num, int end) {
    if (num >= end) {
    return false;
    }
    if (num == 0 || num == 1) {
    return false;
    }
    boolean flag = true;
    for (int i = 2; i < end; i++) {
    if (num % i == 0 && (num / i != 1)) {
    flag = false;
    break;
    }

    }
    return flag;
    }

    /**

  • 判断num是不是digitNum各个位数之和
    *

  • @param digitNum

  • @param num

  • @return
    */
    public static boolean isDigitSum(int digitNum, int num) {
    int sum = 0;
    String digitNumStr = String.valueOf(digitNum);
    char[] charArray = digitNumStr.toCharArray();
    for (int i = 0; i < charArray.length; i++) {
    sum = sum + Integer.valueOf(String.valueOf(charArray[i]));
    }
    return num == sum;
    }

}


查看完整回答
反对 回复 2019-05-14
  • 4 回答
  • 0 关注
  • 531 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号