From fe45473e56f0c6deb830d59ce90bdea0469c16af Mon Sep 17 00:00:00 2001 From: timeshifter Date: Mon, 24 Mar 2025 14:20:06 +0100 Subject: [PATCH] 44 --- src/euler44/Cargo.toml | 7 +++++++ src/euler44/src/main.rs | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/euler44/Cargo.toml create mode 100644 src/euler44/src/main.rs diff --git a/src/euler44/Cargo.toml b/src/euler44/Cargo.toml new file mode 100644 index 0000000..9ca4b85 --- /dev/null +++ b/src/euler44/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "euler44" +version = "0.1.0" +edition = "2024" + +[dependencies] +itertools = "0.14.0" diff --git a/src/euler44/src/main.rs b/src/euler44/src/main.rs new file mode 100644 index 0000000..1b0ff95 --- /dev/null +++ b/src/euler44/src/main.rs @@ -0,0 +1,21 @@ +use itertools::Itertools; + +fn main() { + let pentagonals: Vec<_> = (1..10000).map(pentagonal_number).collect(); + let combinations: Vec<_> = pentagonals.iter().combinations(2).collect(); + + for item in combinations { + let smaller = *item.first().unwrap(); + let larger = *item.get(1).unwrap(); + let sum = smaller + larger; + let difference = larger - smaller; + if pentagonals.contains(&sum) && pentagonals.contains(&difference) { + println!("{difference}"); + break; + } + } +} + +fn pentagonal_number(n: usize) -> usize { + n * (3 * n - 1) / 2 +}