diff --git a/Algorithms/Numeric/GreatestCommonDivisor.cs b/Algorithms/Numeric/GreatestCommonDivisor.cs index d8276b12..cd75bd35 100644 --- a/Algorithms/Numeric/GreatestCommonDivisor.cs +++ b/Algorithms/Numeric/GreatestCommonDivisor.cs @@ -19,13 +19,17 @@ public static uint FindGCD(uint a, uint b) return a; uint _a = a, _b = b; - uint r = _a % _b; + + //Bitwise operator '&' works on individual bits of each value + //result is 0 or 1 + //it works like a modulus operator '%' but is more efficient + uint r = _a & _b; while(r != 0) { _a = _b; _b = r; - r = _a % _b; + r = _a & _b; } return _b;