我需要帮助理解Java中的/和%符号。另外,我需要一些关于如何继续代码的建议

时间:2016-02-22 22:58:23

标签: java bluej

好的,让我们开始,通过展示我的问题。

问题:

10001st prime

通过列出前六个素数:2,3,5,7,11和13,我们可以看到第6个素数是13。

什么是10 001本素数?

这就是我目前的情况。我在创建算法时非常糟糕,但我真的希望能够遵循我父亲成为IT的道路。我很喜欢这样做,但我现在正在努力。

public class PrimeNumber
{
    public static void main(String[] args)
    {
         int primeNum = 2;

         for (int count = 0; count < 10002; count++)
         {
              if (primeNum / 2 ==  && primeNum / primeNum == 1)
         {
              primeNum++;
         }
         else
         {
            System.out.println("Error.");
         }
     }
     System.out.println(primeNum);
    }
}

1 个答案:

答案 0 :(得分:1)

/符号表示&#39;除以&#39;。所以你的代码说'如果primeNum除以2 = 1而primeNum除以primeNum = 1则增加primeNum。&#39;这是不必要的;所有这一切都在询问是否primeNum是2。

%符号表示除以&#39;后的剩余部分。所以2%3 = 1.4%2 = 0。这可能在你的程序中很有用,因为它可以通过查看它是否可被任何数字整除来检查你的数字是否为素数。

(使用if(a%b == 0),您可以检查b是否是a的因子。)

您的程序可以使用一些快捷方式:它只需要检查每个素数,直到它正在检查的数字的平方根。

所以你可能想要保留一个你找到的所有素数的数组,以便你可以检查一个你想知道的数字是否可以被任何一个整数整除。

(这可以通过外部循环,遍历每个数字,循环内部的循环,检查该数字是否可被任何先前发现的素数整除。)