From fefb4e07826a12ea6975527bd413b71369785bf1 Mon Sep 17 00:00:00 2001 From: Michele Sessa Date: Thu, 21 Sep 2023 12:26:14 +0100 Subject: [PATCH] feat(armstrong_number): new optional exercise for rust piscine --- subjects/armstrong_number/README.md | 49 +++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 subjects/armstrong_number/README.md diff --git a/subjects/armstrong_number/README.md b/subjects/armstrong_number/README.md new file mode 100644 index 00000000..0d4b0487 --- /dev/null +++ b/subjects/armstrong_number/README.md @@ -0,0 +1,49 @@ +## armstrong_number + +### Instructions + +Create a function which checks if the number is a valid Armstrong number. The function will return the number if it is a valid one and `None` otherwise. + +An Armstrong number is a number where the sum of its own digits each raised to the power of the number of digits is equal to itself. + +As an example 153 is an Armstrong number because: +`153 = 1^3 + 5^3 + 3^3` + +### Expected Function + +```rust +pub fn is_armstrong_number(nb: u32) -> Option { +} +``` + +### Usage + +Here is a possible program to test your function, + +```rust +fn main() { + println!("{:?}", is_armstrong_number(0)); + println!("{:?}", is_armstrong_number(1)); + println!("{:?}", is_armstrong_number(153)); + println!("{:?}", is_armstrong_number(370)); + println!("{:?}", is_armstrong_number(371)); + println!("{:?}", is_armstrong_number(407)); + println!("{:?}", is_armstrong_number(400)); + println!("{:?}", is_armstrong_number(198)); +} +``` + +And its output: + +```console +$ cargo run +Some(0) +Some(1) +Some(153) +Some(370) +Some(371) +Some(407) +None +None +$ +```