45
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "euler45"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
@@ -0,0 +1,26 @@
|
||||
use std::collections::HashSet;
|
||||
|
||||
fn main() {
|
||||
let triangle_numbers: Vec<_> = (286..100_000).map(triangle).collect();
|
||||
let pentagonal_numbers: HashSet<_> = (2..100_000).map(pentagonal).collect();
|
||||
let hexagonal_numbers: HashSet<_> = (2..100_000).map(hexagonal).collect();
|
||||
|
||||
for t in triangle_numbers {
|
||||
if pentagonal_numbers.contains(&t) && hexagonal_numbers.contains(&t) {
|
||||
println!("{t}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn triangle(n: usize) -> usize {
|
||||
n * (n + 1) / 2
|
||||
}
|
||||
|
||||
fn pentagonal(n: usize) -> usize {
|
||||
n * (3 * n - 1) / 2
|
||||
}
|
||||
|
||||
fn hexagonal(n: usize) -> usize {
|
||||
n * (2 * n - 1)
|
||||
}
|
||||
Reference in New Issue
Block a user