From e836626b87b50d78e54533179189dbb405158ef1 Mon Sep 17 00:00:00 2001 From: Blizzard Finnegan Date: Tue, 22 Aug 2023 13:55:25 -0400 Subject: [PATCH] Naive approach to Armstrong Number --- armstrong-numbers/src/lib.rs | 7 ++++++- armstrong-numbers/tests/armstrong-numbers.rs | 8 -------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/armstrong-numbers/src/lib.rs b/armstrong-numbers/src/lib.rs index 41de1c3..319fff8 100644 --- a/armstrong-numbers/src/lib.rs +++ b/armstrong-numbers/src/lib.rs @@ -1,3 +1,8 @@ pub fn is_armstrong_number(num: u32) -> bool { - unimplemented!("true if {} is an armstrong number", num) + let num_vec:Vec = num.to_string().chars().filter(|c| !c.is_numeric()).map(|c| c.to_digit(10).unwrap_or(0)).collect(); + let mut total = 0; + for val in num_vec{ + total += val.pow(2); + } + total == num } diff --git a/armstrong-numbers/tests/armstrong-numbers.rs b/armstrong-numbers/tests/armstrong-numbers.rs index 2163451..9ac51d0 100644 --- a/armstrong-numbers/tests/armstrong-numbers.rs +++ b/armstrong-numbers/tests/armstrong-numbers.rs @@ -6,49 +6,41 @@ fn test_zero_is_an_armstrong_number() { } #[test] -#[ignore] fn test_single_digit_numbers_are_armstrong_numbers() { assert!(is_armstrong_number(5)) } #[test] -#[ignore] fn test_there_are_no_2_digit_armstrong_numbers() { assert!(!is_armstrong_number(10)) } #[test] -#[ignore] fn test_three_digit_armstrong_number() { assert!(is_armstrong_number(153)) } #[test] -#[ignore] fn test_three_digit_non_armstrong_number() { assert!(!is_armstrong_number(100)) } #[test] -#[ignore] fn test_four_digit_armstrong_number() { assert!(is_armstrong_number(9474)) } #[test] -#[ignore] fn test_four_digit_non_armstrong_number() { assert!(!is_armstrong_number(9475)) } #[test] -#[ignore] fn test_seven_digit_armstrong_number() { assert!(is_armstrong_number(9_926_315)) } #[test] -#[ignore] fn test_seven_digit_non_armstrong_number() { assert!(!is_armstrong_number(9_926_316)) }