我正在使用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
}