总时间限制: 1000ms 内存限制: 65536kB
描述
输入一个正整数n,求第n小的质数。
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
解法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();//n<=10000,也就是说质数的总个数
int i=2,j,e=0;//其中e相当于质数的个数
while(i>=2) {
for(j=2;j<Math.sqrt(i);j++) {
//用j<Math.sqrt(i)而不用j<i
//由于j<Math.sqrt(i)可以缩短时间,且达到同样的效果
if(i%j==0) {
break;
}
}
if(j>Math.sqrt(i)) {
e++;
if(e==n) {
System.out.println(i);
break;//当结果得到时,要用break,及时终止循环,防止超时
}
}
i++;
}
}
}