fn factors_aux(mut vec: Vec, n: u64) -> Vec { match n { 1 => vec, n if n % 2 == 0 => { factors_aux({ vec.push(2); vec }, n / 2) }, _ => { let mut i: u64 = 3; while n % i != 0 { i += 2 } factors_aux({ vec.push(i); vec }, n / i) } } } pub fn factors(n: u64) -> Vec { factors_aux(vec![],n) }