首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目Euler #7 Java代码无法工作

项目Euler #7 Java代码无法工作
EN

Stack Overflow用户
提问于 2013-08-08 16:04:18
回答 1查看 1.1K关注 0票数 2

我一直在研究Euler #7项目,不知道为什么我的程序不能工作。问题如下:

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

10001素数是多少?

到目前为止,这是我的节目:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-08 16:11:32

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

这应该足以解决一个修复问题(好的,还有一个提示:您所需要的只是添加一个字符)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18130786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档