This commit is contained in:
timeshifter
2025-03-24 16:15:16 +01:00
parent 0a6a64a725
commit 0327290454
2 changed files with 34 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
[package]
name = "euler46"
version = "0.1.0"
edition = "2024"
[dependencies]
itertools = "0.14"
primes = { version = "*", path = "../../lib/primes" }
+26
View File
@@ -0,0 +1,26 @@
use primes::Primes;
const MAX: usize = 1_000_000;
fn main() {
let primes = Primes::get_between(2, MAX);
'outer: for number in iter_odd_composite_numbers(&primes) {
for prime in primes.iter().take_while(|p| **p < number) {
'inner: for n in 1_usize.. {
let sum = prime + 2 * n.pow(2);
if sum == number {
continue 'outer;
}
if sum > number {
break 'inner;
}
}
}
println!("{number}");
break 'outer;
}
}
fn iter_odd_composite_numbers(primes: &Primes<usize>) -> impl Iterator<Item = usize> {
(3..MAX).step_by(2).filter(|n| !primes.contains(n))
}