JVM OOM错误 - 使用scala流查找素数

时间:2014-09-13 17:51:26

标签: scala stream primes

我正在使用Scala Stream查找两个数字之间的素数,但它正在抛出Java OutofMemoryError。有人能告诉我为什么会这样吗?

def sieve(nums: Stream[Int]): Stream[Int] = {
  nums.head #:: sieve(nums.tail filter (_ % nums.head != 0))
}  

def listPrimesinRange(start: Int, end: Int): List[Int] = {
  sieve(Stream.from(2)).filter(x => (x >= start && x <= end)).toList
}

0 个答案:

没有答案