finish 20
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
[package]
|
||||
name = "euler20"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
rust-gmp = "*"
|
||||
@@ -0,0 +1,19 @@
|
||||
use gmp::mpz::Mpz;
|
||||
|
||||
fn main() {
|
||||
let x = faculty(Mpz::from(100));
|
||||
let y: u32 = x
|
||||
.to_string()
|
||||
.chars()
|
||||
.map(|c| c.to_digit(10).unwrap() as u32)
|
||||
.sum();
|
||||
println!("{y}");
|
||||
}
|
||||
|
||||
fn faculty(x: Mpz) -> Mpz {
|
||||
if x == Mpz::one() {
|
||||
x
|
||||
} else {
|
||||
x.clone() * faculty(x - 1)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user