return number2;
if (k==31) { throw new ArithmeticException("overflow: gcd is 2^31"); }   int t = ((u&1)==1) ? v : -(u/2);   do {   while ((t&1)==0) { t/=2; }  if (t>0) { u = -t; } else { v = t; }  t = (v - u)/2;   } while (t!=0); return -u*(1<<k);
    private static int greatestCommonDivisor(int number1, int number2) {        int remainder = number1 % number2;        while (remainder != 0) {            number1 = number2;            number2 = remainder;            remainder = number1 % number2;        }        return number2;    }