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
}
 
    