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大概十多行就能写完了,但是初学的时候看这样的代码会很困难,还是得习惯多用方法来分隔。