How to find the first 10 prime Fibonacci numbers in C

1 Answer

0 votes
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>

bool isPrime(uint64_t n) {
    if (n < 2) return false;
    if (n == 2 || n == 3) return true;
    if (n % 2 == 0) return false;

    for (uint64_t i = 3; i * i <= n; i += 2)
        if (n % i == 0)
            return false;

    return true;
}

uint64_t nextFib(uint64_t *a, uint64_t *b) {
    uint64_t f = *a;
    uint64_t next = *a + *b;
    *a = *b;
    *b = next;

    return f;
}

int main(void) {
    uint64_t a = 1, b = 1;
    int count = 0;

    while (count < 10) {
        uint64_t f = nextFib(&a, &b);
        if (isPrime(f)) {
            printf("%llu ", (unsigned long long)f);
            count++;
        }
    }

    return 0;
}


/*
run:

2 3 5 13 89 233 1597 28657 514229 433494437 

*/

 



answered 10 hours ago by avibootz
edited 9 hours ago by avibootz
...