Expand description
Implementations of RemovePower and
RemovePowerAssign, traits for
dividing out the largest power of a factor.
§remove_power
use malachite_base::num::basic::traits::Two;
use malachite_base::num::factorization::traits::RemovePower;
use malachite_nz::integer::Integer;
let (q, k) = Integer::from(-12).remove_power(Integer::TWO);
assert_eq!(q, -3);
assert_eq!(k, 2);
// a negative factor raised to an odd power flips the sign
let (q, k) = Integer::from(-8).remove_power(Integer::from(-2));
assert_eq!(q, 1);
assert_eq!(k, 3);§remove_power_assign
use malachite_base::num::basic::traits::Two;
use malachite_base::num::factorization::traits::RemovePowerAssign;
use malachite_nz::integer::Integer;
let mut x = Integer::from(-12);
assert_eq!(x.remove_power_assign(Integer::TWO), 2);
assert_eq!(x, -3);