ac-lib 0.1.0

A rust library for competitive programming on AtCoder
Documentation
pub fn is_prime(n: u64) -> bool {
    if n < 2 {
        return false;
    }
    if n == 2 {
        return true;
    }
    if n.is_multiple_of(2) {
        return false;
    }

    let mut i = 3;
    while i * i <= n {
        if n.is_multiple_of(i) {
            return false;
        }
        i += 2;
    }
    true
}

pub fn generate_primes(limit: u64) -> Vec<u64> {
    (2..=limit).filter(|&n| is_prime(n)).collect()
}

pub fn nth_prime(n: usize) -> Option<u64> {
    let mut count = 0;
    let mut candidate = 1;

    while count < n {
        candidate += 1;
        if is_prime(candidate) {
            count += 1;
        }
    }
    Some(candidate)
}