编写一个函数接口,其中有一个找出所有素数的抽象方法。再编写一个类,类中只有一个方法,找出给定范围内所有的素数。请使用Lambda表达式函数引用的方法,完成找出10000内所有的素数并每行输出10个素数。
时间: 2023-11-27 20:55:40 浏览: 44
下面是实现的代码,其中`PrimeFinder`类中的`findPrimesInRange`方法使用Lambda表达式调用了`PrimeUtil`中的`isPrime`方法来找到给定范围内的素数,并将结果每行输出10个。
```java
import java.util.ArrayList;
import java.util.List;
interface Prime {
boolean isPrime(int n);
}
class PrimeUtil {
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
class PrimeFinder {
public void findPrimesInRange(int start, int end) {
List<Integer> primes = new ArrayList<>();
Prime prime = PrimeUtil::isPrime;
for (int i = start; i <= end; i++) {
if (prime.isPrime(i)) {
primes.add(i);
}
}
for (int i = 0; i < primes.size(); i++) {
System.out.print(primes.get(i) + " ");
if ((i + 1) % 10 == 0) {
System.out.println();
}
}
}
}
public class Main {
public static void main(String[] args) {
PrimeFinder primeFinder = new PrimeFinder();
primeFinder.findPrimesInRange(2, 10000);
}
}
```
阅读全文