pub fn factors(inp: u64) -> Vec<u64>{
    let mut number = inp;

    let mut factor = 2;

    let mut return_vec = Vec::new();

    while number != 1 {
        while number % factor != 0 {
            factor += 1;
        }
        return_vec.push(factor);
        number /= factor;
        factor = 2;
    }

    return return_vec
}