Skip to content

Instantly share code, notes, and snippets.

@transhapHigsn
Created December 27, 2020 12:13

Revisions

  1. transhapHigsn created this gist Dec 27, 2020.
    38 changes: 38 additions & 0 deletions nth_prime.rs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    pub fn check_for_prime(div: u32, primes: &mut Vec<u32>) -> bool {
    for i in primes {
    if *i > div/2 {
    return true;
    }

    if div % *i == 0 {
    return false;
    }
    }
    return true;
    }


    pub fn nth(n: u32) -> u32 {
    let mut div = 2;
    let mut primes: Vec<u32> = Vec::new();
    let mut counter = 0;

    loop {
    match check_for_prime(div, &mut primes) {
    true => {
    primes.push(div);
    counter += 1;
    if counter == n + 1 {
    return div;
    }
    },
    false => (),
    };

    if div % 2 == 0 {
    div += 1;
    } else {
    div += 2;
    }
    }
    }