public static void isPrime(int number)
{
for ( int i = 2; i<number ; i ++)
{
if ( number%i!=0 ) {
System.out.println(number + " is not a prime ");
}
else
{
System.out.println(number +" is a prime ");
}
}
,结果是:
60是素数 60不是素数 60不是素数 60是素数 60不是素数 60不是素数 60不是素数 60不是素数 60是素数 60不是素数 60不是素数 60不是素数 60不是素数 60不是素数 60不是素数 60不是素数
我想要的只是它是否是素数;在这种情况下,它不是。
答案 0 :(得分:2)
你错过了一个括号。如果您保持代码清洁,它将解决问题。
同样在您的if语句中,您正在检查是否number % 2 != 0
。如果它不等于0那么它可能是素数。所以我将其更改为number % 2 == 0
以解决问题。
另一个错误是,即使你知道这个号码不是素数,你也会继续打印。
public static void isPrime(int number)
{
for ( int i = 2; i<Math.sqrt(number) + 1; i ++)
{
if ( number%i==0 ) {//If number is not a prime
//Will print that the number is not a prime once
System.out.println(number +" is not a prime number.");
return ; //Will exit the method
}
}
//If you reach this point then the number is prime.
System.out.println(number +" is a prime number.");
}