您的位置:首页 > 编程语言 > Java开发

Java编程练习系列一:获取给定范围内的所有素数

2016-07-17 12:33 344 查看

素数的数学定义

       质数(prime number)又称素数,有无限个。除了1和它本身以外不再被其他的除数整除。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积,最小的质数是2。

那么在编程中怎么去定义素数

     在一般领域,对正整数n,如果用2到 

 之间的所有整数去除,均无法整除,则n为质数。质数大于等于2
不能被它本身和1以外的数整除。

实现Java代码

/**
* Get all the prime numbers between start and end
* @author Administrator
*
*/
import java.util.ArrayList;
import java.util.List;
public class Test01 {
public List<Integer> showPrimeNumber(int start,int end){
List<Integer> primeNumbers=new ArrayList<Integer>();
int tempSqrt=0;
boolean isPrimeNumber=true;
for(int i=start;i<end;i++){
isPrimeNumber=true;
if(i>3){
tempSqrt=(int)Math.sqrt(i);
for(int j=2;j<=tempSqrt;j++){
if(i%j==0){
isPrimeNumber=false;
}
}
}
else if(i<2){
isPrimeNumber=false;
}
else
{
isPrimeNumber=true;
}
if(isPrimeNumber){
primeNumbers.add(i);
}
}
return primeNumbers;
}
}


测试代码:

public class MTest {

public static void main(String[] args){
int start=1;
int end=1000;
Test01 t01=new Test01();
List<Integer> myList=t01.showPrimeNumber(start, end);
System.out.println(String.format("%d--%d之间的素数是:",start,end));
int i=0;
for(int item:myList){

System.out.print(item);
System.out.print("\t");
i++;
if(i%10==0)
{
System.out.println();
}
}
}

}


测试结果:



素数表





在1000以内为168个素数,对比素数表可以看出在1000内代码实现没有问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: