diff --git a/rust/fourthfree/src/main.rs b/rust/fourthfree/src/main.rs index 8ee64ed..19935bb 100644 --- a/rust/fourthfree/src/main.rs +++ b/rust/fourthfree/src/main.rs @@ -17,14 +17,11 @@ fn is_fourth_free(x: &u64) -> bool { } fn step(x: &u64) -> Vec { - let mut new_xs: Vec = Vec::new(); - for d in 0..BASE { - let temp = x * BASE + d; - if is_fourth_free(&temp) { - new_xs.push(temp); - } - } - new_xs + (0..BASE) + .into_iter() + .map(|d| x * BASE + d) + .filter(|d| is_fourth_free(d)) + .collect() } fn next(ls: Vec) -> Vec { @@ -61,8 +58,5 @@ fn main() { i += 1; println!("{}\t{}", i, ls.len()); ls = next(ls); - if i == 6 { - break; - } } }