gpt4 book ai didi

Java——素数算法返回 16

转载 作者:行者123 更新时间:2023-12-02 15:54:58 27 4
gpt4 key购买 nike

我希望这个 Java 程序传输 10001 个素数,但它莫名其妙地决定将 16 标记为素数。

这里的算法只是保持素数的运行计数,并检查每个新数字以查看它是否可以被任何小于它的素数整除。如果不是,则将其添加到数组 primes[ ] 中,该数字显示在控制台上,并且该过程继续,直到 primes[ ] 已满。

public static void main(String[] args){
int[] primes = new int[10001];
int primeCount = 1;
int testNumber = 3;
primes[0] = 2;
while(primeCount < 10001){
for (int i = 0; i < primeCount; i++){
if (testNumber % primes[i] == 0){
i = 0;
testNumber++;
}
}
primes[primeCount] = testNumber;
System.out.println(testNumber);
primeCount++;
testNumber++;

}
}

控制台读数:

   3571113161719...

除了 16 之外,其他一切看起来都井然有序......有什么想法吗?

最佳答案

您应该设置 i = -1 而不是 i = 0,因为您在将 i 设置为零后会立即增加它的值。

我建议您重新了解 for 循环的工作原理。

关于Java——素数算法返回 16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15056761/

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