素数检查器没有显示错误,但在执行时吐出错误.如何解决这个问题?



这段代码在eclipse中没有显示错误,但在执行时显示如下:

线程"main"java.lang.ArithmeticException:/by 0prime_number.main (prime_number.java: 15)

下面的代码:

import java.util.Scanner;
public class prime_number {
public static void main(String[] args) {

int temp;
boolean isPrime=true;

Scanner scan = new Scanner(System.in);
System.out.println("Enter any number: ");
int num = scan.nextInt();
scan.close();

for(int i = 0; i<num;i++) {
temp=num%i;
if(temp==0) {
isPrime=false;
break;
}
}
if(isPrime==true) {
System.out.println(num+" is a Prime number!");

}
else {
System.out.println(num+" is not a Prime Number!");
}
}
}

在for循环的第一次迭代中,i == 0.

当到达

temp = num % i;

程序尝试用num除以i并求除余数。由于不能除以0,程序抛出错误。

从i=1开始for循环,因为当你这样做时:

temp = num % i;

你实际上是在除以0。

如果你真的想,你可以从i = 2开始你的for循环,因为i = 1总是你的数字的因数,如果它是一个整数。

相关内容

最新更新