function isPrime(n: number): boolean {
if (n < 2) return false;
if (n === 2 || n === 3) return true;
if (n % 2 === 0) return false;
for (let i: number = 3; i * i <= n; i += 2) {
if (n % i === 0) return false;
}
return true;
}
function nextFib(state: [number, number]): number {
const f: number = state[0];
const next: number = state[0] + state[1];
state[0] = state[1];
state[1] = next;
return f;
}
const fibState: [number, number] = [1, 1];
let count: number = 0;
let out: string = "";
while (count < 10) {
const f: number = nextFib(fibState);
if (isPrime(f)) {
out += f + " ";
count++;
}
}
console.log(out);
/*
run:
2 3 5 13 89 233 1597 28657 514229 433494437
*/