Java 求一个数是否为素数

Java 求一个数是否为素数,java,for-loop,if-statement,primes,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) {

我刚开始上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");
    }
}}}

如果我们在这里讨论的是一个超级简单的实现,您可以首先检查数字是否使用了余数运算符,即,如果
number%2==0
,则
prime=true
。如果情况并非如此,请设置
count=3
,并使用终止条件
while(count
设置
while
循环。在
while
循环中,检查
number
count
的剩余部分是否为零。如果是,那就是质数。如果不是,则按1递增
count
,循环继续。

如果我们在这里讨论一个超级简单的实现,您可以首先检查数字是否使用了余数运算符,即,如果
number%2==0
,则
prime=true
。如果情况并非如此,请设置
count=3
,并使用终止条件
while(count
设置
while
循环。在
while
循环中,检查
number
count
的剩余部分是否为零。如果是,那就是质数。如果没有,则按1递增
count
,循环继续。

您应该考虑如何用自然语言表述您的问题。例如:素数是一个只能被自身和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");
for(int count=2;count
还要确保提前检查边缘情况。例如负数。
请注意,这是一个效率低下的解决方案,但却是直截了当的解决方案。

您应该考虑如何用自然语言表述您的问题。例如:素数是一个只能被自身和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");
for(int count=2;count
还要确保提前检查边缘情况。例如负数。
请注意,这是一个效率低下的解决方案,但却是直截了当的解决方案。

您的代码中有多个bug和逻辑错误。这里打扫干净了

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");
}
int number=15;
整数计数=2;
布尔素数=真;

对于(inti=count;i您的代码中有多个bug和逻辑错误。在这里,它被清除了

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");
}
int number=15;
整数计数=2;
布尔素数=真;


对于(int i=count;我在这里发布您的代码。不是它的图片。(感谢您将代码编辑到您的问题中)编辑了它,抱歉。这个-->
for(count=count+1)
不会编译。如果有的话,会有什么?在这里发布您的代码。不是它的图片。(感谢您将代码编辑到您的问题中)抱歉,编辑了它。这-->
for(count=count+1)
不会编译,如果有的话,会有什么?嗨,谢谢你的评论,我在课程中上了6课,当我说基本的时候,我的意思是真正的基本,因为我们也没有做过while循环,有什么替代品我可以用吗?同样的事情可以用
来代替
循环,也就是说,
(计数=3;计数
谢谢你的解释,非常感谢。我想我现在已经整理好了!嗨,谢谢你的评论,我在课程中上了大约6节课,当我说basic时,我的意思是说真的很基本,因为我们也没有做while loops,有什么替代品我可以用吗?同样的事情可以用
代替
loop,也就是说,
代替(count=3;count
谢谢你的解释,非常感谢。我想我现在已经整理好了!非常感谢你,我现在唯一的麻烦就是理解“我”,它实际上是什么意思/代表什么?for语句的内容如下:从2开始,递增1,直到达到数字/2。i是从2开始,每次递增1的变量。因此,对于循环的第一次迭代,它是2,它运行:15%2==0。然后在完成该迭代后,它将i递增到3,然后运行15%3==0.每次上升1,直到达到数字/2,然后for循环结束。@Paraoxic这里有一个很好的教程,可以阅读for语句:非常感谢,我现在唯一的麻烦就是理解“i”,它实际上是什么意思/代表什么?for语句的内容如下:从2开始,递增1,直到达到数字/2。i是从2开始,每次递增1的变量。因此,对于循环的第一次迭代,它是2,它运行:15%2==0。然后在完成该迭代后,它将i递增到3,然后运行15%3==0.每次上升1,直到达到数字/2,然后for循环结束。@Paraoxic这里有一个很好的教程,可以阅读for语句: