确定数字是否为素数

时间:2016-11-06 18:23:43

标签: java

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不是素数

我想要的只是它是否是素数;在这种情况下,它不是。

1 个答案:

答案 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.");
    }