如何找到n次因子的因子

问题描述

假设我有10 步骤1:找出10-> 1,2,5,10的因数 步骤2:我需要找到每个1,10的因子。所以它将是数组-> 1,1,10 步骤3:现在,我需要继续查找数组中每个数字的因数 这将进行n次。

有没有人知道如何用最少的时间和空间来完成

解决方法

  1. 编写自己的factor函数来查找一个数的因数
  2. 使用flatMap将函数应用于数字数组
  3. 在第2步上循环(使用简单的for循环)重复n次。

请参阅flatMap的文档:https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#flatMap-java.util.function.Function-

,

第1步:编写具有以下签名的方法。

public List<Integer> generateFactors(List<Integer> numbers)

第2步:调用此方法N次。

List<Integer> numbers = new ArrayList<>();
numbers.add(10);

for (int i = 0; i < n; i++) {
    numbers = generateFactors(numbers);
}

第3步:打印列表。

System.out.println(Arrays.toString(list.toArray()));