您的位置:首页 > 其它

蓝桥杯真题——第n个素数

2015-05-13 21:11 447 查看
第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
;

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);

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: