How to find the first 10 prime Fibonacci numbers in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "math"
)

func isPrime(n uint64) bool {
    if n < 2 {
        return false
    }
    if n == 2 || n == 3 {
        return true
    }
    if n%2 == 0 {
        return false
    }
    limit := uint64(math.Sqrt(float64(n)))
    for i := uint64(3); i <= limit; i += 2 {
        if n%i == 0 {
            return false
        }
    }
    
    return true
}

func nextFib(a, b *uint64) uint64 {
    f := *a
    next := *a + *b
    *a = *b
    *b = next
    
    return f
}

func main() {
    var a uint64 = 1
    var b uint64 = 1
    count := 0

    for count < 10 {
        f := nextFib(&a, &b)
        if isPrime(f) {
            fmt.Printf("%d ", f)
            count++
        }
    }
}



/*
run:

2 3 5 13 89 233 1597 28657 514229 433494437 

*/

 



answered 4 hours ago by avibootz
...