BigInteger.GreatestCommonDivisor(BigInteger, BigInteger) Метод

Определение

Находит наибольший общий делитель двух значений BigInteger.Finds the greatest common divisor of two BigInteger values.

public:
 static System::Numerics::BigInteger GreatestCommonDivisor(System::Numerics::BigInteger left, System::Numerics::BigInteger right);
public static System.Numerics.BigInteger GreatestCommonDivisor (System.Numerics.BigInteger left, System.Numerics.BigInteger right);
static member GreatestCommonDivisor : System.Numerics.BigInteger * System.Numerics.BigInteger -> System.Numerics.BigInteger
Public Shared Function GreatestCommonDivisor (left As BigInteger, right As BigInteger) As BigInteger

Параметры

left
BigInteger

Первое значение в вычитании.The first value.

right
BigInteger

Второе значение в вычитании.The second value.

Возвращаемое значение

BigInteger

Наибольший общий делитель значений left и right.The greatest common divisor of left and right.

Примеры

В следующем примере показан вызов GreatestCommonDivisor метода и обработка исключений, необходимая для предоставления полезной информации о ArgumentOutOfRangeException .The following example illustrates a call to the GreatestCommonDivisor method and the exception handling necessary to provide useful information about an ArgumentOutOfRangeException. Результат указывает, что наибольший общий делитель этих двух чисел равен 1.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);
try
{
   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);
}
Dim n1 As BigInteger = BigInteger.Pow(154382190, 3)
Dim n2 As BigInteger = BigInteger.Multiply(1643590, 166935)
Try
   Console.WriteLine("The greatest common divisor of {0} and {1} is {2}.", _
                     n1, n2, BigInteger.GreatestCommonDivisor(n1, n2))
Catch e As ArgumentOutOfRangeException
   Console.WriteLine("Unable to calculate the greatest common divisor:")
   Console.WriteLine("   {0} is an invalid value for {1}", _
                     e.ActualValue, e.ParamName)
End Try                           

Комментарии

Наибольший общий делитель — это наибольшее число, в которое можно разделить два BigInteger значений без возврата остатка.The greatest common divisor is the largest number into which the two BigInteger values can be divided without returning a remainder.

Если параметры left и right являются ненулевыми числами, метод всегда возвращает по крайней мере значение 1, так как все числа можно разделить на 1.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.

Примечание

Вычисление наибольшего общего делителя очень больших значений left и right может быть очень трудоемкой операцией.Computing the greatest common divisor of very large values of left and right can be a very time-consuming operation.

Значение, возвращаемое GreatestCommonDivisor методом, всегда является положительным, независимо от знака left right параметров и.The value returned by the GreatestCommonDivisor method is always positive regardless of the sign of the left and right parameters.

Применяется к