gpt4 book ai didi

java - Project Euler #7 Java 代码不工作

转载 作者:行者123 更新时间:2023-11-30 07:15:02 25 4
gpt4 key购买 nike

我一直致力于 Project Euler #7,但无法弄清楚为什么我的程序无法运行。问题如下:

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

第 10001 个质数是多少?

到目前为止,这是我的程序:

public class Euler7 {
public static void main (String[] args) {
long count = 1;
long primes = 0;
while (primes <= 10001) {
if (isPrime(count)){
primes++;
if (primes == 10001) {
System.out.println(count);
}
}

count++;
}
}
public static boolean isPrime (long i) {
if (i <= 1) return false;
else if (i == 2 || i == 3) return true;
else if (i % 2 == 0 || i % 3 == 0) return false;
else {
for (int n = 3; n < Math.sqrt(i); n+=2) {
if (i % n == 0) {
return false;
}
}
return true;
}
}

编辑:明确地说,它返回值 104033,但 WolframAlpha 说第 10001 个素数是 104743

最佳答案

您的代码错误地认为一些完整的素数平方也是素数。特别是,您的 isPrime(25) 返回 true

这应该足以找出解决方法(好的,还有一个提示:您只需要添加一个字符)。

关于java - Project Euler #7 Java 代码不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18130786/

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