找出一个数字是否为素数

时间:2017-09-27 19:04:43

标签: java for-loop if-statement primes

我刚刚开始了一门java课程。任务是编写一个代码,输出数字是否为素数。

这就是我所拥有的。它出现了很多错误。我找到了很多答案,但他们都说使用我们尚未学到的线条。

public class PrimeNumbers2 {
public static void main(String[] args) {
    int number = 9;
    int count = 2;
    Boolean prime = true;

    if (number % count == 0) {
        prime = true;
    }
    else {

        for (count = count + 1) {

        if (count + 1>= number) {
            prime = false;
        }
        else
        {
            prime =  false;
        }

    }
    if (prime == true)
    {
        System.out.println("Number is prime");
    }
     else
    {
        System.out.println("number is not prime");
    }
}}}

3 个答案:

答案 0 :(得分:1)

你应该考虑如何用自然语言表达你的问题。例如:素数是一个只能自行分割的数字和1。或相反的方式:对于大于1且小于我的数字范围内的每个数字,应该没有分隔符

现在用简单的java代码来制定你的问题,尝试实现你的陈述。

   for(int count=2; count < number; count++) {
      if(number % count == 0) {
          System.out.println("Number is not a prime!");
          // Since we are finished return and do no more iterations
          return;
      }
   }
   // we iterated all possible numbers and can return successfully
   System.out.println("Number is a prime");

请务必事先检查边缘情况。例如。负数。 请注意,这是一个效率低下的解决方案,但直截了当。

答案 1 :(得分:1)

您的代码中存在多个错误和逻辑错误。在这里它被清理干净。

int number = 15;
int count = 2;
boolean prime = true;


for (int i = count; i <= number/2; i++ ) {

   if (number % i == 0) {
      prime = false;
  }
}


if (prime == true)
{
    System.out.println("Number is prime");
}
else
{
    System.out.println("number is not prime");
}

答案 2 :(得分:0)

如果我们在这里讨论一个超级简单的实现,您可以首先检查该数字是否使用余数运算符,即number % 2 == 0,然后是prime = true。如果不是这种情况,请设置count = 3并设置一个带有终止条件while的{​​{1}}循环。在while (count < number)循环中,检查whilenumber的剩余部分是否为零。如果是,那就是素数。如果没有,请将count递增1,然后循环继续。