请帮助…我在Java中计算素数的实现是否做了它应该做的事情?

请帮助…我在Java中计算素数的实现是否做了它应该做的事情?,java,arraylist,Java,Arraylist,我已经得到了如何使用Java实现素数生成器的描述;但我不确定我是否做得很好。我希望有人能给我一些关于如何改进我的实现的一般性建议!请不要给我答案,因为这是家庭作业,我想自己破解它/成为一名更好的程序员/不要作弊 我将在下面发布描述和我的解决方案,基本上我只想知道一些一般性的事情-我是否正确地遵循了说明(最重要的是,我发现使用的语言有点混乱),以及我是否可以使我的程序更好(如果是这样的话,一些一般性的提示会很好,这样我就可以知道如何…我认为我对对数的使用有点偏离了,但是我想不出更好的方法来使用它)

我已经得到了如何使用Java实现素数生成器的描述;但我不确定我是否做得很好。我希望有人能给我一些关于如何改进我的实现的一般性建议!请不要给我答案,因为这是家庭作业,我想自己破解它/成为一名更好的程序员/不要作弊

我将在下面发布描述和我的解决方案,基本上我只想知道一些一般性的事情-我是否正确地遵循了说明(最重要的是,我发现使用的语言有点混乱),以及我是否可以使我的程序更好(如果是这样的话,一些一般性的提示会很好,这样我就可以知道如何…我认为我对对数的使用有点偏离了,但是我想不出更好的方法来使用它)

如果不允许,请道歉-如果不允许,请忽略或删除!非常感谢您的帮助!:)

说明:

Prime(int initialCapacity):类 构造器。会议的目的 构造函数用于计算和存储 第一个初始值是容量素数�;第一个初始容量第一个初始容量第一个初始容量第一个i 数字。这个想法是你计算 将数字保存一次,并将其保存 你可以多次重复使用它们 时代。您应该使用ArrayList来 存储素数。算法 计算素数的方法是 在下一节中提供

  • 从素数的空列表开始。你可以代表这个名单 使用ArrayList

  • >P>数组大小不等于N,考虑下一个 候选素数。最初 下一个候选素数应该是 2,否则它应该是 前任候选人的继任者 素数

  • 如果候选素数是素数,则将其添加到列表中

  • 继续执行步骤2

  • 请注意,此算法建议您 应该使用while循环。第三步 以前的算法要求 知道如何决定一个给定的 候选素数,c>1,是素数 号码。事实上
    de您的解决方案与问题描述不匹配

    问题描述规定了素性测试(即给定一个候选素数,测试它是否为素数)。它还需要
    initialCapacity
    prime

    解决方案中的问题:

  • 它似乎在尝试进行筛选
  • 这是低效的,因为合成数的倍数被划掉了
  • 它会找到小于等于
    初始容量
    的素数(不是第一个
    初始容量
    素数-要查看差异,请尝试
    初始容量=1

  • 您可以用以下方式回答自己的问题:

    如果这些不在您的列表中,则说明您的代码没有正确执行

    您将要阅读以下内容:


    您在这里有什么特别的问题吗?它是按照问题的规范实现的吗?我对initialCapacity的对数是否正确/在ArrayList上执行任何函数?“类构造函数”似乎与
    公共静态void prime
    相矛盾。您是否简化了代码以显示所讨论的位,或者您没有实际定义素数类?您可能希望编写一个程序,使用您的函数并测试少量素数,因为您应该很容易知道前10个左右的素数。它没有正确实现,通过测试,您将看到哪个部分不正确,因为您将把函数拆分为多个较小的函数,这样您就可以单独测试每个部分,这将使您成为一个更好的程序员。非常感谢您的回复。我能问一下我尝试进行筛选有什么问题吗?这不是我应该做的吗?!再次非常感谢:)感觉你是要从问题中进行试算,而不是从“注释”部分进行筛选。此外,由于您正在尝试查找
    n
    素数,因此
    isPrimeNumber
    的理想容量并不确定(尽管您可以求解
    k/logk=n
    并预算一些缓冲区)。