solved 50
This commit is contained in:
parent
448f1d209f
commit
5378beb5af
37
src/bin/problem_50.rs
Normal file
37
src/bin/problem_50.rs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user