import java.util.stream.IntStream;
public class PrimeNumberSum {
public static void main(String[] args) {
int a = 1; // 起始值
int b = 100; // 终止值(不包含)
int sum = IntStream.range(a, b)
.filter(PrimeNumberSum::isPrime)
.sum();
System.out.println("区间[" + a + ", " + b + ")的素数和为:" + sum);
}
// 判断一个数是否为素数
private static boolean isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i = 2; i * i <= number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
在上述代码中,我们使用IntStream.range(a, b)创建了一个从a到b-1的整数流,然后使用filter方法传入判断素数的方法isPrime,对流中的元素进行筛选,保留素数。最后使用sum方法计算筛选后的素数的和。
注意,在判断素数的方法isPrime中,我们从2开始遍历到平方根(i * i <= number),如果找到能整除的数,则表示该数不是素数。
你可以根据需要修改起始值a和终止值b来计算不同区间的素数和。
你在这不能强转类型