一道java题,在线等,挺急的,求高手帮忙
1个回答
展开全部
import java.util.Scanner;
import java.util.regex.Pattern;
public class Test03 {
public static void main(String[] args) {
while (true){
String str = new Scanner(System.in).nextLine();
if(isInteger(str)){
if(isPrime(Integer.valueOf(str))){
System.out.println(str);
}else{
int sum=0;
for (int i = 0; i <str.length() ; i++) {
sum+=str.charAt(i)-48;
}
System.out.println(sum);
}
break;
}
}
}
public static boolean isInteger(String str) {
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
return pattern.matcher(str).matches();
}
private static boolean isPrime(int a) {
if(a==1)return false;
if(a==2)return true;
int m= (int) (Math.sqrt(a)+1);
for (int i = 2; i <= m; i++) { //最小的素数是2
if (a % i == 0) { //除了1和本身之后没有约数即为素数
return false;
}
}
return true;
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |