added gcd euclid