素数的数学定义
质数(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内代码实现没有问题。