质数是指大于1并且只能被1及自身整除的整数,判断一个数字是否为质数就是判断该数字是否能被整除,判断范围是2到该数字开平方的数字。
之判断到该数字开平方后的数字,是为了节省时间,因为是除法,对于开平方后的数字还要大的数字,没有判断的必要了。
代码如下
private static boolean isPrime(int i) {
if (2 == i) {
return true;
}
if (i <=1) {
return false;
}
return IntStream.rangeClosed(2, (int) Math.ceil(Math.sqrt(i)))
.allMatch(number ->0 !=i % number);
}