设计boolean prime(int n)方法,可用来判别N是否为质数,若为质数,则响应为true,若不是则响应为false,

设计boolean prime(int n)方法,可用来判别N是否为质数,若为质数,则响应为true,若不是则响应为false,若小于0,则抛出ArgumentOutOfBoundException。

/** * 质数:只有1和它本身这两个因数的自然数叫做质数。还可以说成质数只有1和它本身两个约数 * * @author Administrator */ public class PrimeNumber { public static void main(String[] args ) { try { boolean isPrimeNumber = prime(5); System.out.println(isPrimeNumber); isPrimeNumber = prime(0); System.out.println(isPrimeNumber); isPrimeNumber = prime(-5); System.out.println(isPrimeNumber); } catch (ArgumentOutOfBoundException ae) { ae.printStackTrace(); } } /** * 判断参数是否为质数 * * @param n * 要判断的值 * @return * @throws ArgumentOutOfBoundException * 小于0则抛出异常 */ static boolean prime(int n ) throws ArgumentOutOfBoundException { // 小于0抛出异常 if (n < 0) throw new ArgumentOutOfBoundException("你输入的信息不正确!"); // 判断是否未知数. if (n % 2 != 0 && n % 3 != 0) { return true; } else { return false; } } } class ArgumentOutOfBoundException extends Exception { ArgumentOutOfBoundException ( ) { super(); } ArgumentOutOfBoundException ( String msg ) { super(msg); } }追问

我知道这个问题百度里有,但是我要的是能在键盘上输入数字然后再到try里判断是否抛出异常。然后,我试着改了代码,但是在 if (n % 2 != 0 && n % 3 != 0) { return true; } 这条语句里就没有作用了,比如说6,它就判断不了它不是素数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-20
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的地位。

最小的素数是2, 它也是唯一的偶素数。 最前面的素数依次排列为:2,3,5,7,11,13,17,......
第2个回答  推荐于2018-05-17
import java.util.*;
class MyException extends Exception//自定义一个异常类
{
String message;//用来储存输出的错误信息
MyException(int n)//输出错误信息
{
message="请输入正数";
}
public String ArgumentOutOfBoundException()//返回错误信息
{
return message;
}
}
class Calculate//定义一个类来计算是否为素数
{
boolean b=true;//定义一个返回值
public boolean prime(int a) throws MyException//计算数据是否为素数且能抛出异常
{

if(a <= 0)//判断是否为异常
{
MyException ex =new MyException(a);
throw(ex);//抛出异常,结束prime方法的执行
}
else{//计算是否为素数
for(int i = 2; i < a; i++)
{
if(a % i ==0)
{
b =false;
continue;
}
}
return b;

}
}
}
public class Experiment {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//输入数据
System.out.println("请输入数据:");
Scanner reader=new Scanner(System.in);
reader.hasNextInt();
int x=reader.nextInt();
Calculate calculate=new Calculate();
try{
System.out.println("结果是:"+calculate.prime(x));
}
catch(MyException e){
System.out.println(e.ArgumentOutOfBoundException());
}
}
}本回答被网友采纳
相似回答