4 回答

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

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切开来相加判断就可以了 } }

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;
}
}
添加回答
举报