fn is_prime(n: u64) -> bool {
if n < 2 {
return false;
}
if n == 2 || n == 3 {
return true;
}
if n % 2 == 0 {
return false;
}
let mut i: u64 = 3;
while i * i <= n {
if n % i == 0 {
return false;
}
i += 2;
}
true
}
fn next_fib(a: &mut u64, b: &mut u64) -> u64 {
let f = *a;
let next = *a + *b;
*a = *b;
*b = next;
f
}
fn main() {
let mut a: u64 = 1;
let mut b: u64 = 1;
let mut count: usize = 0;
while count < 10 {
let f = next_fib(&mut a, &mut b);
if is_prime(f) {
print!("{} ", f);
count += 1;
}
}
}
/*
run:
2 3 5 13 89 233 1597 28657 514229 433494437
*/