solved 50

This commit is contained in:
Fabian Schmidt 2024-09-16 12:42:55 +02:00
parent 448f1d209f
commit 5378beb5af

37
src/bin/problem_50.rs Normal file
View File

@ -0,0 +1,37 @@
fn main() {
println!("{}", solve())
}
fn solve() -> usize {
let mut primes = vec![];
for n in 2..=1000000 {
let prime_check_max = (n as f64).sqrt().ceil() as usize;
let mut is_prime = true;
for prime in primes.clone() {
if n % prime == 0 {
is_prime = false;
break;
} else if prime > prime_check_max {
break;
}
}
if is_prime {
primes.push(n);
}
}
let mut chain_length = primes.len() - 1;
loop {
for prime_window in primes.windows(chain_length) {
let sum = prime_window.iter().map(|&prime| prime).sum::<usize>();
if primes.contains(&sum) {
return sum
}
if sum > 1000000 {
break;
}
}
chain_length -= 1;
}
}