TLSharp.Core.MTProto.Crypto.Factorizator.GCD C# (CSharp) Method

GCD() public static method

public static GCD ( long a, long b ) : long
a long
b long
return long
        public static long GCD(long a, long b)
        {
            while (a != 0 && b != 0)
            {
                while ((b & 1) == 0)
                {
                    b >>= 1;
                }
                while ((a & 1) == 0)
                {
                    a >>= 1;
                }
                if (a > b)
                {
                    a -= b;
                }
                else {
                    b -= a;
                }
            }
            return b == 0 ? a : b;
        }