diff --git a/aoc2025/src/day02.rs b/aoc2025/src/day02.rs index 5b99438..3a119df 100644 --- a/aoc2025/src/day02.rs +++ b/aoc2025/src/day02.rs @@ -50,31 +50,15 @@ fn get_num_digits(num: &u64) -> usize { digits } -fn get_nth_digit(num: &u64, n: usize) -> u64 { - let mut num = *num; - for _ in 0..n { - num /= 10; - } - num % 10 -} - fn is_repeated_twice(num: &u64) -> bool { let num_digits = get_num_digits(num); if !num_digits.is_multiple_of(2) { return false; } let half = num_digits / 2; + let mask = 10_u64.pow(half as u32); - for (right, left) in (0..half).zip(half..num_digits) { - let ln = get_nth_digit(num, left); - let rn = get_nth_digit(num, right); - - if ln != rn { - return false; - } - } - - true + *num / mask == *num % mask } fn part1(input: &str) -> Result {