蓝桥杯真题——第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);
}
}
}
}
素数就是不能再进行等分的整数。比如: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);
}
}
}
}
相关文章推荐
- 2017河南省B组蓝桥杯真题(1) 等差素数列
- 第四届蓝桥杯 软件类省赛真题 第二题:组素数
- 第八届蓝桥杯省赛真题 - 2.等差素数列
- 第八届蓝桥杯真题 02 等差素数列
- 蓝桥杯-第n个素数
- 算法笔记_206:第五届蓝桥杯软件类决赛真题(Java语言A组)
- 第六届蓝桥杯决赛真题 04 穿越雷区(dfs || bfs)
- 第八届蓝桥杯省赛真题 - 7.日期问题
- 2015年蓝桥杯JavaA组省赛真题
- 第七届蓝桥杯大赛个人赛省赛(软件类)真题 C语言A组 2
- 第五届蓝桥杯软件类国赛真题-C-B-1_年龄巧合
- 蓝桥杯——计算机研究生机试真题(2017.2.14)
- 蓝桥杯——计算机研究生机试真题(2017.2.15)
- 蓝桥杯真题 出栈次序 题解
- 第三届蓝桥杯预赛真题解答
- 2013年蓝桥杯之组素数
- 蓝桥杯真题 前缀判断
- 2013第四届蓝桥杯 C/C++A组真题及题解(未完待续)
- 蓝桥杯第六届省赛JAVA真题----循环节长度
- 蓝桥杯 ADV-91 算法提高 素数判断