finish 15

This commit is contained in:
Dr. Matthias Ratajczak
2022-08-19 15:45:35 +02:00
parent a14f7f1fd4
commit 6fa6ab62e6
2 changed files with 33 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "euler15"
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 = "*"
[profile.release]
lto = true
+21
View File
@@ -0,0 +1,21 @@
use gmp::mpz::Mpz;
const LENGTH: usize = 20;
fn main() {
for i in 1..=LENGTH {
let i = Mpz::from(i as u32);
print!("{i} x {i}: ");
let divisor = faculty(i.clone());
let result = faculty(Mpz::from(2) * i) / (divisor.clone() * divisor);
println!("{}", result);
}
}
fn faculty(x: Mpz) -> Mpz {
if x == Mpz::one() {
x
} else {
x.clone() * faculty(x - 1)
}
}