题目
前六个质数是2,3,5,7,11和13,其中第6个是13.
第10001个质数是多少?
解题方法
程序中用到的Prime类是我自定义的工具类,因为在做欧拉工程的题目遇到很多素数相关的题目,所以我实现了一个Prime工具类,方便解题。具体的源码以及用法参考我的另一篇文章——《Java工具类 素数类》
主要使用getPrimeArrayByLength函数返回长度为length的素数数组。这个函数会调用isPrime函数判断一个数是否为素数,初始状态Prime工具类会维护一个长度为1000的素数数组。当请求的新素数数组长度超过之前保存的,那么会替换之前的。而getMaxCheckedPrime可以获得保存的素数数组的最后一个元素。
程序
public static void solve() {
Prime.getPrimeArrayByLength(10001);
System.out.println(Prime.getMaxCheckedPrime());
}