gpt4 book ai didi

java - 我执行此算法以计算前 N 个素数有什么问题?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:08 25 4
gpt4 key购买 nike

我认为构造函数在逻辑上是正确的,我只是不知道如何在 main 中调用它! :) 任何人都可以帮忙吗?如果有人能快速浏览一下我的代码,那就太好了 :) 非常感谢!

另外,我在这个实现中使用了 arrayLists,我必须这样做,所以我不想改变它,即使只使用数组更容易实现。

import java.util.*;
public class PrimeNumberss {
public static void main(String args []){
PrimeNumberss PrimeNumbers = new PrimeNumberss(10);
}

public PrimeNumberss (int initialCapacity) {
ArrayList<Integer> listOfPrimeNumbers = new ArrayList<Integer>(initialCapacity);
long numberOfPrimes = 0; //Initialises variable numberOfPrimes to 0
int start = 2;
boolean[] isPrimeNumber = new boolean[initialCapacity + 1];

for (int i=0;i==initialCapacity;i++) {//setting all values in array of booleans to true
isPrimeNumber[i] = true;
}

while (start != initialCapacity)
{
if (isPrimeNumber[start])
{
listOfPrimeNumbers.add(start);
//add to array list
numberOfPrimes++;

for (int i = start; start < initialCapacity; i+=start)
{
isPrimeNumber[i] = false;
}

}

start++;
}
}
}

最佳答案

  1. 您的算法不正确;你只会找到小于 N(你的初始容量)的素数,而不是前 N 个素数。
  2. 如果您要存储每个质数,则应将它们存储在类变量中,而不是构造函数的局部变量中。如果这样做,您将无法在构造函数之外访问它们。
  3. 您应该使用 getter 方法公开列表以提供对它们的访问。
  4. 您没有在构造函数中打印任何内容。

关于java - 我执行此算法以计算前 N 个素数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com