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

标签 multithreading algorithm servlets primes

我是一名在大学学习 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/

相关文章:

java - 无法从 Servlet 到 JSP 获取错误消息(验证)

java - 如何防止 Servlet 的结果被缓存?

objective-c - 在保持宽高比的情况下将 CGSize 调整到最大

algorithm - 实现蒙特卡洛树搜索 - 游戏状态节点与可能的移动节点

java - 授权来自 HttpSession 的 javaee websocket 请求

multithreading - 从 VBA 调用计算密集型例程而不停止 Excel GUI

c - 使用C标准数学库精确计算标准正态分布的CDF

在 C 中使用 pThread 将数组与多线程进行比较

java - Java 定时器的多线程

c++ - For 循环中的 OpenMP 并行部分 (C++) - 开销