pub(crate) fn check_divisibility_and_divide_by_pow10(n: &mut u32) -> bool {
const N: u32 = 2;
debug_assert!(*n <= crate::compute_power32::<{ N + 1 }>(10));
struct Info;
impl Info {
const MAGIC_NUMBER: u32 = 0x147c29;
const BITS_FOR_COMPARISON: i32 = 12;
const THRESHOLD: u32 = 0xa3;
const SHIFT_AMOUNT: i32 = 27;
}
*n *= Info::MAGIC_NUMBER;
const COMPARISON_MASK: u32 = if Info::BITS_FOR_COMPARISON >= 32 {
u32::MAX
} else {
((1 << Info::BITS_FOR_COMPARISON) - 1) as u32
};
let c = ((*n >> N) | (*n << (Info::BITS_FOR_COMPARISON as u32 - N))) & COMPARISON_MASK;
*n >>= Info::SHIFT_AMOUNT;
c <= Info::THRESHOLD
}