gpt4 book ai didi

java - java中前1000个质数的CodeEval求和

转载 作者:行者123 更新时间:2023-12-01 10:51:20 26 4
gpt4 key购买 nike

现在我正在尝试从 https://www.codeeval.com 做一项简单的任务

您需要在其中查找前 1000 个素数的总和。我在IDEA中完成了它,我的总和与正确答案相同。但是当我尝试将文件上传到网站时,加载后显示错误:

"CodeEval Error: Compilation was aborted after 10 seconds".

我不知道这个错误。关于这个错误有什么想法吗?

    public class solution {
public static void main(String[] args) {
int sum = 2;
int num = 3;
for (int i = 2; i <= 1000; i++) {
while (!IsPrime(num)) {
num += 1;
}
sum = sum + num;
num += 1;
}
System.out.println(sum);
}
static boolean IsPrime(int TestNum) {
int NumOfDividers = 1;
for (int x = 2; x <= TestNum; x++) {
if (TestNum % x == 0) {
NumOfDividers = NumOfDividers + 1;
}
}
return (NumOfDividers == 2);
}
}

最佳答案

isPrime 方法最简单的优化是跳过大部分划分,如下所示:

static boolean isPrime(long n) {
if (n != 2 && (n & 1) == 0) {
// Early test for even.
return false;
}
for (long i = 3; i <= n / i; i += 2) {
if (n % i == 0) {
return false;
}
}
return true;
}

可以使用已知素数列表来改进这一点,但这可能不是您想要的。

关于java - java中前1000个质数的CodeEval求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33872853/

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