#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
*/