How to find the first 10 prime Fibonacci numbers in Rust

1 Answer

0 votes
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 

*/

 



answered 4 hours ago by avibootz
...