Поделиться через


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

Определение

Находит наибольший общий делитель двух значений BigInteger.

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

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

right
BigInteger

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

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

Наибольший общий делитель значений left и right.

Примеры

В следующем примере показан вызов GreatestCommonDivisor метода и обработка исключений, необходимая для предоставления полезных сведений ArgumentOutOfRangeExceptionо . Результат показывает, что наибольшим общим делителем этих двух чисел является 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);
}
let n1 = BigInteger.Pow(154382190, 3)
let n2 = BigInteger.Multiply(1643590, 166935)

try
    printfn $"The greatest common divisor of {n1} and {n2} is {BigInteger.GreatestCommonDivisor(n1, n2)}."
with :? ArgumentOutOfRangeException as e ->
    printfn $"Unable to calculate the greatest common divisor:"
    printfn $"   {e.ActualValue} is an invalid value for {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 значения, не возвращая остаток.

left Если параметры и right являются ненулевыми числами, метод всегда возвращает по крайней мере значение 1, так как все числа можно разделить на 1. Если любой из параметров равен нулю, метод возвращает абсолютное значение ненулевых параметров. Если оба значения равны нулю, метод возвращает ноль.

Примечание

Вычисление наибольшего общего делителя очень больших значений left и right может быть очень трудоемкой операцией.

Значение, возвращаемое методом GreatestCommonDivisor , всегда является положительным независимо от знака left параметров и right .

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