add lcm
add gcdext