需求:給定一个数字n,返回1到n之间的质数(素数)个数,不包括n本身。
* 质数又被称为素数,是指一个大于1的自然数,除了1和它自身外,不能被其它自然数整除。
* 例如:n = 5 ,返回2,因为1-5之间的质数为:2和3。
public static void main(String[] args) {
System.out.println( getSum( 5 ) );
}
private static Integer getSum(int n) {
//存放质数的集合
List<Integer> arr = new ArrayList<>();
for (int i = 2; i < n; i++) {
if (isPrimeNumber( i )) {
arr.add( i );
}
}
//打印质数
System.out.println( arr );
//返回集合长度(质数个数)
return arr.size();
}
/**
* 判断是否为质素
*
* @param i 待判断的最大数值
* @return 是返回真,否假
*/
private static boolean isPrimeNumber(int i) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
return false;
}
}
return true;
}
网友评论