我想用scala解决this问题。
我的代码:

def dividers(n: Int) =
  (1 until n) filter (x => n%x == 0)

def sumOfDividers(n: Int) = dividers(n).sum

val abNumbers = (1 to 28123) filter (x => sumOfDividers(x) > x)

我的解决方案的下一步是使一些序列包含abNumbers序列中所有可能的丰富数。我尝试过使用增强for循环来实现这一点,但它在运行时抛出Java堆异常如何将所有这些总和放入流结构中?

最佳答案

对范围使用tostream方法:

val abNumbers = ((1 to 28123) toStream).filter (x => sumOfDividers(x) > x)

abNumbers: scala.collection.immutable.Stream[Int] = Stream(12, ?)

还是我遗漏了什么?

10-08 19:22