第n個素數
素數就是不能再進行等分的整數。比如:7,11。而9不是素數,因爲它可以平分爲3等份。一般認爲最小的素數是2,接着是3,5,...
請問,第100002(十萬零二)個素數是多少?
請注意:2 是第一素數,3 是第二個素數,依此類推。
public class Main
{
public static void main(String[] args)
{
int N = 1000 * 1000 * 10;
int x = 100002;
byte[] a = new byte[N];
for(int i=2; i<N/2; i++)
{
if(a[i]==1) continue; //和數沒有資格參加篩法
for(int k=2; k<=N/i; k++)
{
if(i*k<N)
a[i*k] = 1; //將和數用1標記
}
}
int sum = 0; //用來計算第幾個素數
for(int i=2; i<N; i++) //i表示素數
{
if(a[i]==0)
{
sum++;
if(sum==x) //如果sum=100002
System.out.print(sum+" "+i);
}
}
}
}