fn digits(mut n: u32) -> (usize,Vec) { let mut v = vec![]; while n > 9 { v.push(n % 10); n /= 10; } v.push(n); (v.len(),v) } pub fn is_armstrong_number(num: u32) -> bool { let (l,v) = digits(num); v.iter().map(|x| x.pow(l as u32)).sum::() == num }