Scala
サンプル
備忘録
素数

Scalaで素数のサンプル

少し古いがこちらを参考に。

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)