added gcd with long args