JAVA计算指定上限的最大素数

今天来研究下通过JAVA进行指定上限的最大素数的计算 。比如指定上限为1亿,通过程序算出结果为99999989,即不超过1亿的最大素数为99999989 。
网上搜索到了这个问题的一种解法如下,我们命名为算法1:
/*
* 使用对撞指针,步长为1
*/
public static int maxPrime1(int num) {
int i = num;
while (i > 1) {
int m = 2, n = i - 1;
while (m <= n) {
if (m * n == i) {
break;
} else if (m * n > i) {
n--;
} else {
m++;
}
}
if (m > n) {
return i;
}
i--;
}
return 1;
}
为了调用上面的代码,主函数如下:
public static void main(String[] args) {
long beginTime = System.


    推荐阅读