-1
Javaで効率的なコードを実装して、与えられた数値が12桁以上の大きさの素数であるかどうかを検証する方法は?12桁以上の素数を検証するJavaの効率的なアルゴリズムは何ですか?
例
Input:
10
Output: prime
Input:
101111111111
Output: prime
Input:
101740496633
Output: prime
Input:
111111111111
Output:not prime
Input:
157639024808
Output: not prime
私はそれが素数であるかどうかを確認するには、次のアルゴリズムを実装してみました。しかし、
は動作しません。
12桁以上の数値には長すぎます。
マイコード
public static Boolean checkPrime(long a){
if(a%2==0)
return false;
for(int i=3;i<(int)Math.sqrt(a);i=i+2){
if(a%i==0){
return false;
}
}
return true;
}
「」は数が
与えられた数が素数でない場合は与えられた数が素数であるか偽である場合、上記の関数がtrueを返したチェックされます。
12より大きい数値の場合、与えられた数値が素数であるかどうかを調べるにはどうすればよいですか?
'int'ではなく' long'を使います。 –
あなたのメソッドは、引数が '2'でも間違った答えを返します。 –
'a'が正方形であると、メソッドが失敗することもあります。 –