gpt4 book ai didi

java - Java 8 中的质数

转载 作者:搜寻专家 更新时间:2023-11-01 01:00:45 24 4
gpt4 key购买 nike

我试图用 Java 8 编写一个简单的素数程序。下面是程序。我也想减少 isPrime() 中的代码。有什么东西可以过滤从 2n/2 的元素,然后为 n%i == 0 应用过滤器这将使 isPrime 无关?

import static java.util.stream.Collectors.toList;

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class Stream1 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 20);
// Prime number
System.out.println(numbers.stream()
.filter(Stream1::isPrime)
.collect(toList()));
}

public static boolean isPrime(int number) {
for (int i = 2; i <= number / 2; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}

最佳答案

IntStream可用于生成整数流

public static boolean isPrime(int number) {
return !IntStream.rangeClosed(2, number/2).anyMatch(i -> number%i == 0);
}

public static boolean isPrime(int number) {
return IntStream.rangeClosed(2, number/2).noneMatch(i -> number%i == 0);
}

关于java - Java 8 中的质数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44366942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com