什么是素数?
大于1的整数,如果它的正因子只有1和它本身,那么该整数就是素数,例如:2,3,5,7…而4,6,8,9不是
该问题可以分解成以下子问题:
- 判断一个数是否是素数
- 统计素数的个数
- 打印素数,每行打印10个
源代码如下:
package com.liuhuan.java;
public class PrimeNumberMethod {
/**
* 把该问题分解成确定素数以及打印出素数
* */
public static void main(String[] args) {
System.out.println("The first 50 prime numbers are \n");
printPrimeNumber(50);
}
/** 打印素数 */
public static void printPrimeNumber(int numberOfPrime){
final int NUMBER_OF_PRIME_PER_LINE = 10;
int count = 0;
int number = 2;
while(count < numberOfPrime){
if(isPrime(number)){
count++;
// 每10个换一行打印
if(count % NUMBER_OF_PRIME_PER_LINE == 0){
System.out.printf("%-5s\n", number);//格式化打印
}else{
System.out.printf("%-5s", number);
}
}
number++;
}
}
/** 判断是否为素数 */
public static boolean isPrime(int number){
for(int divisor = 2; divisor <= number / 2; divisor++){
if(number % divisor == 0){
return false;
}
}
return true;
}
}
输出结果为:The first 50 prime numbers are
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229