黑马程序员技术交流社区
标题:
java筛选法求素数
[打印本页]
作者:
Smilexs
时间:
2015-9-26 11:51
标题:
java筛选法求素数
本帖最后由 Smilexs 于 2015-9-26 11:55 编辑
不了解筛选法,还请自行百度,通过筛选法可以比较快速求得素数,也没什么高深的技术,分享一下
,不多说,直接上代码伺候!如果对你有帮助,还请点个赞,新人报道
。
/**
* 功能:筛选法求素数(主要是素数倍数的数,肯定不是素数)
* @author Smilexs
* @param severalPrime 第几个素数
*/
public void getPrime(int severalPrime){
if(severalPrime<=0||severalPrime==1){
System.out.println("第1个素数是:2");
return;
}
int [] a =new int[severalPrime];//存放素数 的 数组
int index=0;//数组下标
a[index]=2;//第一个素数=2
for(int n=3;;n++){
boolean flag=true;//标记是否是 素数,每次循环假定是 素数
/*
* 关键:
* 数组中遍历,n是否是数组里面某个数的倍数
* Math.sqrt(index) 大大大的提高了 运算速度
*/
for(int j=0;j<=Math.sqrt(index);j++){
if(n%a[j]==0){
flag=false;//不是素数,直接下一轮
break;
}
}
if(flag){
index++;
a[index]=n;//是素数 存放数组里
}
if(index==severalPrime-1)break;
}
System.out.println("第"+severalPrime+"个素数是:"+a[severalPrime-1]);
}
复制代码
1.png
(1.36 KB, 下载次数: 18)
下载附件
2015-9-26 11:47 上传
作者:
ln0491
时间:
2015-9-26 13:20
学习了。。。。。。。。。。。。。
作者:
a8336675
时间:
2015-9-26 13:28
学习学习。
作者:
罗志辉
时间:
2015-9-26 17:08
学学习习
作者:
楼夜雪
时间:
2015-9-26 17:19
学习学学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2