/** * 测验:将数字按质数和非质数分区 */ public class Demo02 { public static void main(String[] args) { Map<Boolean, List<Integer>> partitionPrimes = partitionPrimes(50); System.out.println("质素:" + partitionPrimes.get(true)); System.out.println("非质素:" + partitionPrimes.get(false)); } /** * 写一个方法,它接受参数int n,并将前n个自然数分为质数和非质数 */ public static Map<Boolean, List<Integer>> partitionPrimes(int n) { return IntStream.rangeClosed(2, n).boxed().collect(Collectors.partitioningBy(candidate -> isPrime2(candidate))); } /** * 判断一个数是否是质素 * * @param candidate * @return */ public static boolean isPrime(int candidate) { return IntStream.range(2, candidate).boxed().noneMatch(n -> candidate % n == 0); } /** * 判断一个数是否是质素:优化 * @param candidate * @return */ public static boolean isPrime2(int candidate) { int candidateRoot = (int) Math.sqrt((double) candidate); return IntStream.range(2, candidateRoot).boxed().noneMatch(n -> candidate % n == 0); } } git hub: https://github.com/wangrui0
第 13 篇 java 8 用流分析数据----测验:将数字按质数和非质数分区
猜你喜欢
转载自blog.csdn.net/qq_35524586/article/details/83270542
今日推荐
周排行