私は大学でITを勉強している学生です。私は1兆を超える素数を検索する割り当てを与えてきました。手順が示されています:
1兆としての開始数
奇数の候補を選択する
3と平方根の間のすべての奇数の整数でそれらを除算します。整数の1つが候補を均等に分割する場合、それは素数として宣言されます。
今これは私が思いついたものです:
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;
}
}
私の心配は、正しい道を進んでいるかどうかわからないことです。別の問題は、これが常に1つの番号、最初の番号であるということです。グーグルした後、servlet.comとjavafaqで、スレッドを使用していることがわかりました。スレッドを実行しましたが、かっこいいようです。私はそれを本当に理解していませんが、それは異なる数を与えます。
だから私は今、そのアルゴリズムを実装する方法について混乱していて、本当にそれをコピーしたくありません。たぶん彼らの方法を理解した後、私はこのアルゴリズムをより良くコーディングすることができます。
ありがとう