您的位置:首页 > 职场人生

黑马程序员————java实现:筛选法求素数

2015-09-26 11:20 537 查看
------www.itheima.com Java培训、Android培训、iOS培训、.Net培训期待与您交流!
-------
不了解筛选法,还请自行百度,筛选法可以快速求的素数,不多说,直接上代码伺候!
/**
* 功能:筛选法求素数(主要是素数倍数的数,肯定不是素数)
* @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]);
}
结果:


  

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