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

用Java实现:

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

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

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


人到中年有点甜
浏览 532回答 4
4回答

慕娘9325324

public&nbsp;boolean&nbsp;f(int&nbsp;N,&nbsp;int&nbsp;M)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;flag&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;//判断是否是素数的标志 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;2;&nbsp;i&nbsp;<=&nbsp;Math.sqrt(N);&nbsp;i++)&nbsp;{&nbsp;//Math.sqrt&nbsp;是调用Math类中的sqrt方法,求一个数的平方根 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(N&nbsp;%&nbsp;i&nbsp;==&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//如果是素数则进行M=N个部分之和判断 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(flag)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str&nbsp;=&nbsp;String.valueOf(N); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;str.length();&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;Integer.valueOf(String.valueOf(str.charAt(i))).intValue(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(sum&nbsp;==&nbsp;M)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;}

尚方宝剑之说

for(int i=2 ; i<=N;i++){ //最小的素数是2if(a % i == 0&& i != a){ //除了1和本身之后没有约数即为素数System.out.println("不是素数");break;}else if(i == a){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("是素数"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把N切开来相加判断就可以了 &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}

慕标5832272

public class Test {public static void main(String[] args) {int numM = 8;int digitNumN = 17;if&nbsp;(isPrimeNumber(digitNumN,&nbsp;10000))&nbsp;{ &nbsp;&nbsp;System.out.println(isDigitSum(digitNumN,&nbsp;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;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java