我试图找到检查给定数字是否为素数的最快方法(在Java中).以下是我提出的几种素性测试方法.有没有比第二个实现更好的方法(isPrime2)?
public class Prime {
public static boolean isPrime1(int n) {
if (n <= 1) {
return false;
}
if (n == 2) {
return true;
}
for (int i = 2; i <= Math.sqrt(n) + 1; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static boolean isPrime2(int n) {
if (n <= 1) {
return false;
}
if (n == 2) {
return true;
}
if (n % 2 == …Run Code Online (Sandbox Code Playgroud) 我正在编写一个加密协议的实现.到目前为止,我一直很难找到1024位到4096位整数(308到1233位数字)的最快确定性素性测试.我知道几个选项,但我无法找到真实世界的速度比较.
具体来说,AKS测试与Rabin-Miller的确定性版本和Elliptic Curve Primality Proving测试(以及其他)相比,这个大小的一般随机数如何?