gpt4 book ai didi

multithreading - 了解分配 : Search for prime number above 1 quadrillion using servlets

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:12:18 25 4
gpt4 key购买 nike

我是一名在大学学习 IT 的学生。我一直在布置一项任务,寻找超过一千万亿的素数。已给出步骤:

  • 起始数为一千万亿

  • 选择奇数候选人

  • 将它们除以 3 和它们的平方根之间的每个奇数。如果整数之一平均划分候选人,它被宣布素数。

现在这就是我想出的:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class PrimeSearcher extends HttpServlet{
private long number = 10000000000000001L;
private boolean found = false;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
PrintWriter out = response.getWriter();

while(!checkForPrime(number)){
number = number+2;
}

if(found){
out.println("The first prime number above 1 quadrillion is : " + number);
}

}

public boolean checkForPrime(long numberToCheck){
double sqrRoof = Math.sqrt(numberToCheck);
for(int i=3; i< sqrRoof; i++){
if(numberToCheck%i==0){
return false;
}
}
found= true;
return found;
}


}

我担心的是我不确定我是否在正确的道路上,另一个问题是这总是一个数字,第一个。谷歌搜索后我发现在servlet.comjavafaq他们正在使用线程,我已经运行了他们的线程,它看起来很酷。我真的不明白那个,但它给出了不同的数字。

所以我现在对如何实现该算法感到困惑,我真的不想复制那个算法。也许在理解了他们的方法之后我可以更好地编写这个算法。

谢谢

最佳答案

我认为它看起来不错,但您可能需要 checkForPrime 中的 ilong 类型。而且您没有将 i 递增 2(您只需要检查奇数除数)。

请做好准备,这需要很长时间......

关于multithreading - 了解分配 : Search for prime number above 1 quadrillion using servlets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087116/

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