少し古いがこちらを参考に。
Scala 2.12.4
object PrimeNumber {
// 約数を求める
def divisors(n: Int): List[Int] =
for (i <- (1 to n).toList if n % i == 0) yield i
// 約数が2のときは素数
def isPrime(n: Int): Boolean = divisors(n).lengthCompare(2) == 0
// 与えられた整数までの素数のリストを返す
def findPrimeUntil(n: Int): Iterable[Int] = {
for (i <- 1 to n if isPrime(i)) yield i
}
def main(args: Array[String]) {
val l = findPrimeUntil(30)
println(l)
}
}
// Vector(2, 3, 5, 7, 11, 13, 17, 19, 23, 29)