项目欧拉#10得到了错误的答案

时间:2013-12-14 10:37:58

标签: java

项目欧拉问题10中的问题是将所有素数加到2000,000以下。我尝试了其他数字并且工作正常,但是当我尝试2000,000时答案是错误的。这是为什么?这是我的代码。

Long number = scanner.nextLong();
Long sum = 17L;
for (Long i = 11L; i <= number; i ++) {
if (i % 2 == 0 || i % 3 == 0 || i % 5 == 0 || i % 7 == 0) {
} else {
sum += i;
}
}
System.out.println(sum);

1 个答案:

答案 0 :(得分:0)

你的素数检测算法是完全错误的,它适用于(非常小的)质数但在此之后会很快崩溃。

http://en.wikipedia.org/wiki/Primality_test