输出前50个素数


public class PrimeNumberMethod {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		System.out.println("The first 50 prime number are \n");
		printPrimeNumbers(50);
		

	}
	
	public static void printPrimeNumbers(int numberOfPrimes) {            
		final int NUMBER_OF_PRIMES_PER_LINE = 10;             //定义一行输出10个数字
		int count = 0;
		int number = 2;                      //素数从2开始
		
	
	
	while (count < numberOfPrimes) {
		if(isPrime(number)) {                      //如果是素数的话个数加一,然后再讨论怎样输出
			count++;
			
			if (count % NUMBER_OF_PRIMES_PER_LINE == 0) {              
				System.out.printf("%-5s\n",number);                 //一行已经有10个数字了用一个\n到下一行
				
			}
			else
				System.out.printf("%-5s",number);                   //不到十个数字直接在后面输出
			
		}
		number++;
		
	}
	}
	public static boolean isPrime(int number) {                  //判断是否是素数,2到2/n都不能整除的就是素数
		for (int divisor = 2 ; divisor <= number/2; divisor++ ) {
			if(number % divisor == 0)
				return false;
		}
		return true;    
	}
	 
}

这个代码分成了好几个方法,每一个实现一个小功能。这样逻辑会更清晰而且debug范围会更小更好确定。以前写c语言的素数的时候用两个for大概十多行就能写完了,但是初学的时候看这样的代码会很困难,还是得习惯多用方法来分隔。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值