merged euclid_gcd and extended_euclid
inverse added