РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
364 of 1593 menu

Метод big.Int.GCD

Метод big.Int.GCD вычисляет наибольший общий делитель (НОД) для двух чисел типа big.Int. В первый параметр (x) метод записывает коэффициенты Безу для числа a, во второй параметр (y) - коэффициенты Безу для числа b. Сам НОД возвращается как результат метода. Если параметры x или y равны nil, то соответствующие коэффициенты не вычисляются.

Метод принимает три аргумента: x, y и b. При этом a является получателем метода (z). Метод вычисляет такие коэффициенты x и y, что a*x + b*y = gcd(a, b).

Синтаксис

func (z *Int) GCD(x, y, b *Int) *Int

Пример

Давайте вычислим НОД чисел 48 и 18:

package main import ( "fmt" "math/big" ) func main() { a := big.NewInt(48) b := big.NewInt(18) gcd := new(big.Int) res := gcd.GCD(nil, nil, b) fmt.Println(res) }

Результат выполнения кода:

6

Пример

Давайте вычислим НОД чисел 48 и 18, а также коэффициенты Безу:

package main import ( "fmt" "math/big" ) func main() { a := big.NewInt(48) b := big.NewInt(18) x := new(big.Int) y := new(big.Int) gcd := new(big.Int) res := gcd.GCD(x, y, b) fmt.Println("GCD:", res) fmt.Println("x:", x) fmt.Println("y:", y) }

Результат выполнения кода:

GCD: 6 x: -1 y: 3

Проверяем: 48 * (-1) + 18 * 3 = -48 + 54 = 6, что действительно равно НОД.

Пример

Давайте вычислим НОД для отрицательных чисел:

package main import ( "fmt" "math/big" ) func main() { a := big.NewInt(-48) b := big.NewInt(-18) gcd := new(big.Int) res := gcd.GCD(nil, nil, b) fmt.Println(res) }

Результат выполнения кода:

6

НОД всегда неотрицательный, даже если исходные числа отрицательные.

Смотрите также

  • метод big.Int.Add,
    который складывает два больших числа
  • метод big.Int.Sub,
    который вычитает одно большое число из другого
  • метод big.Int.Mul,
    который умножает два больших числа
  • метод big.Int.Div,
    который делит одно большое число на другое
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить