remove lcm
This commit is contained in:
parent
1cfc30921f
commit
bd3d070049
|
@ -40,20 +40,6 @@ fn parse_input(raw: &str) -> Parsed {
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stolen from my 2019 day 12 solution
|
|
||||||
fn lcm(x: usize, y: usize) -> usize {
|
|
||||||
fn gcd(mut x: usize, mut y: usize) -> usize {
|
|
||||||
let mut remainder;
|
|
||||||
while y != 0 {
|
|
||||||
remainder = x % y;
|
|
||||||
x = y;
|
|
||||||
y = remainder;
|
|
||||||
}
|
|
||||||
x
|
|
||||||
}
|
|
||||||
x * y / gcd(x, y)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn part1(parsed: &Parsed) -> usize {
|
fn part1(parsed: &Parsed) -> usize {
|
||||||
monkey_business::<20, 3>(parsed)
|
monkey_business::<20, 3>(parsed)
|
||||||
}
|
}
|
||||||
|
@ -63,8 +49,8 @@ fn part2(parsed: &Parsed) -> usize {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn monkey_business<const ITERATIONS: usize, const STRESS_REDUCTION: usize>(parsed: &Parsed) -> usize {
|
fn monkey_business<const ITERATIONS: usize, const STRESS_REDUCTION: usize>(parsed: &Parsed) -> usize {
|
||||||
let lcm = parsed.iter().map(|m| m.div_test).reduce(lcm).unwrap();
|
// The checks are all prime numbers, so the lcm is just their product.
|
||||||
println!("lcm: {lcm}");
|
let lcm = parsed.iter().map(|m| m.div_test).product();
|
||||||
let mut monkeys: Vec<Monkey> = parsed.clone();
|
let mut monkeys: Vec<Monkey> = parsed.clone();
|
||||||
let mut moved = Vec::new();
|
let mut moved = Vec::new();
|
||||||
for _ in 0..ITERATIONS {
|
for _ in 0..ITERATIONS {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user