Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

BigInteger.GreatestCommonDivisor Method (BigInteger, BigInteger)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Finds the greatest common divisor of two BigInteger values.

Namespace:   System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

public static BigInteger GreatestCommonDivisor(
	BigInteger left,
	BigInteger right


Type: System.Numerics.BigInteger

The first value.

Type: System.Numerics.BigInteger

The second value.

Return Value

Type: System.Numerics.BigInteger

The greatest common divisor of left and right.

The greatest common divisor is the largest number into which the two BigInteger values can be divided without returning a remainder.

If the left and right parameters are non-zero numbers, the method always returns at least a value of 1 because all numbers can be divided by 1. If either parameter is zero, the method returns the absolute value of the non-zero parameter. If both values are zero, the method returns zero.


Computing the greatest common divisor of very large values of left and right can be a very time-consuming operation.

The value returned by the GreatestCommonDivisor method is always positive regardless of the sign of the left and right parameters.

The following example illustrates a call to the GreatestCommonDivisor method and the exception handling necessary to provide useful information about an ArgumentOutOfRangeException. The result indicates that the greatest common divisor of these two numbers is 1.

BigInteger n1 = BigInteger.Pow(154382190, 3);
BigInteger n2 = BigInteger.Multiply(1643590, 166935);
   Console.WriteLine("The greatest common divisor of {0} and {1} is {2}.", 
                     n1, n2, BigInteger.GreatestCommonDivisor(n1, n2));
catch (ArgumentOutOfRangeException e)
   Console.WriteLine("Unable to calculate the greatest common divisor:");
   Console.WriteLine("   {0} is an invalid value for {1}", 
                     e.ActualValue, e.ParamName);

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Available since 4.0
Windows Phone
Available since 8.1
Return to top
© 2017 Microsoft