scala/ScalaBook/chapter-02/sieve.scala
var N = 100
var sieve = Set(2)
var n = 3
while (n <= N) {
sieve = sieve + n
n += 2
}
var p = 3
while (p*p <= N) {
var step = p + p
var s = p * p
while (s <= N) {
sieve = sieve - s
s += step
}
do {
p += 1
}while (!sieve.contains(p))
}
println(sieve)
var A : List[Int] = List()
for (i<-2 to 100) A = A ++ List(i)
def Sieve (B:List[Int]) : List[Int] =
B match {
case Nil => Nil
case x::xs => x::Sieve(xs.filter(e => e % x > 0))
}
val primes = Sieve(A)
println(primes)