gcd without multiplication or division or modulus operators