Skip to content

Commit

Permalink
feat(armstrong_number): new optional exercise for rust piscine
Browse files Browse the repository at this point in the history
  • Loading branch information
mikysett committed Sep 26, 2023
1 parent efe4184 commit fefb4e0
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions subjects/armstrong_number/README.md
Original file line number Diff line number Diff line change
@@ -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<u32> {
}
```

### 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
$
```

0 comments on commit fefb4e0

Please sign in to comment.