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

素数的数学定义

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值