Expand description
RemovePower and RemovePowerAssign,
traits for dividing out the largest power of a factor.
§remove_power
use malachite_base::num::factorization::traits::RemovePower;
assert_eq!(12u32.remove_power(2), (3, 2));
// the factor need not be prime
assert_eq!(1000u32.remove_power(10), (1, 3));
// a factor that does not divide at all is removed zero times
assert_eq!(7u32.remove_power(3), (7, 0));
// zero is left alone
assert_eq!(0u32.remove_power(3), (0, 0));
// for signed types the quotient is the exact division by the signed power
assert_eq!((-12i32).remove_power(2), (-3, 2));
assert_eq!((-8i32).remove_power(-2), (1, 3));§remove_power_assign
use malachite_base::num::factorization::traits::RemovePowerAssign;
let mut x = 12u32;
assert_eq!(x.remove_power_assign(2), 2);
assert_eq!(x, 3);
let mut x = -8i32;
assert_eq!(x.remove_power_assign(-2), 3);
assert_eq!(x, 1);