gcd and lcm were moved to num::integer