I am using Scala Stream to find out prime numbers between two numbers, but it is throwing Java OutofMemoryError
. Can someone tell me why is it happening so?
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
}