How to find the first 10 prime Fibonacci numbers in Kotlin

1 Answer

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

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

fun nextFib(state: LongArray): Long {
    val f = state[0]
    val next = state[0] + state[1]
    state[0] = state[1]
    state[1] = next
    
    return f
}

fun main() {
    val fibState = longArrayOf(1L, 1L)
    var count = 0
    val out = StringBuilder()

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

    println(out.toString())
}


/*
run:

2 3 5 13 89 233 1597 28657 514229 433494437 

*/

 



answered 3 hours ago by avibootz
...