From 02481656966b0a8dfc95cf3c22bcc049660ff7d4 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Sat, 26 Dec 2020 17:48:38 +0000 Subject: Move Rust exercises in a subdirectory --- rust/prime-factors/src/lib.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 rust/prime-factors/src/lib.rs (limited to 'rust/prime-factors/src/lib.rs') diff --git a/rust/prime-factors/src/lib.rs b/rust/prime-factors/src/lib.rs new file mode 100644 index 0000000..3d7b41f --- /dev/null +++ b/rust/prime-factors/src/lib.rs @@ -0,0 +1,18 @@ + +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) +} -- cgit v1.2.3