How to find the first 10 prime Fibonacci numbers in Scala

1 Answer

0 votes
object PrimeFibonacci {

  def isPrime(n: Long): Boolean = {
    if (n < 2) return false
    if (n == 2 || n == 3) return true
    if (n % 2 == 0) return false

    var i = 3L
    while (i * i <= n) {
      if (n % i == 0) return false
      i += 2
    }
    
    true
  }

  def nextFib(state: Array[Long]): Long = {
    val f = state(0)
    val next = state(0) + state(1)
    state(0) = state(1)
    state(1) = next
    
    f
  }

  def main(args: Array[String]): Unit = {
    val fibState = Array(1L, 1L)
    var count = 0
    val out = new StringBuilder

    while (count < 10) {
      val f = nextFib(fibState)
      if (isPrime(f)) {
        out.append(f).append(" ")
        count += 1
      }
    }

    println(out.toString)
  }
}


/*
run:

2 3 5 13 89 233 1597 28657 514229 433494437 

*/

 



answered 5 hours ago by avibootz
...