输出第N个素数
输出第N个素数
public class FindNthPrime { public static void main(String[] args){ int N = Integer.parseInt(args[0]); //要求输出第 N 个素数 int[] PrimesVector = new int[N]; // 存储已经找到的素数 PrimesVector[0] = 2; //第一个素数是2 int CntPrime = 1; //目前找到的素数的数目是1 for(int i = 3; CntPrime < N; i++) { boolean isPrime = true; // 因为非素数可以拆成素数的乘积,所以只需要考虑已经找到的素数 for (int j = 0; j < CntPrime && PrimesVector[j]*PrimesVector[j] <= i; j++) { if ( i % PrimesVector[j] == 0) { isPrime = false; break; //跳出循环 } } if (isPrime) { CntPrime++; PrimesVector[CntPrime-1] = i; } } System.out.println(" The " + N + "th prime is " + PrimesVector[N-1]); } }
测试结果