> **Источник:** https://python-all.ru/3.16/library/math.integer.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `math.integer` – математические функции для целых чисел

Добавлено в версии 3.15.

---

Этот модуль предоставляет доступ к математическим функциям, определённым для целочисленных аргументов. Эти функции принимают целые числа и объекты, реализующие метод [`__index__()`](https://python-all.ru/3.16/reference/datamodel.html#object.__index__), который используется для преобразования объекта в целое число.

Следующие функции предоставляются этим модулем. Все возвращаемые значения вычисляются точно и являются целыми числами.

#### `math.integer.comb(n, k, /)`

Возвращает количество способов выбрать *k* элементов из *n* элементов без повторений и без учёта порядка.

Вычисляется в `n! / (k! * (n - k)!)`, когда `k <= n`, и в ноль, когда `k > n`.

Также называется биномиальным коэффициентом, поскольку он равен коэффициенту при k-м члене в разложении многочлена `(1 + x)ⁿ`.

Возбуждает [`ValueError`](https://python-all.ru/3.16/library/exceptions.html#ValueError), если хотя бы один из аргументов отрицательный.

#### `math.integer.factorial(n, /)`

Возвращает факториал неотрицательного целого числа *n*.

#### `math.integer.gcd(*integers)`

Возвращает наибольший общий делитель указанных целых аргументов. Если хотя бы один аргумент не равен нулю, возвращается наибольшее положительное целое число, являющееся делителем всех аргументов. Если все аргументы равны нулю, возвращается `0`. Вызов `gcd()` без аргументов возвращает `0`.

#### `math.integer.isqrt(n, /)`

Возвращает целую часть квадратного корня неотрицательного целого числа *n*. Это округление вниз точного квадратного корня из *n*, или, что то же самое, наибольшее целое число *a* такое, что *a*² ≤ *n*.

Для некоторых приложений может быть удобнее наименьшее целое число *a* такое, что *n* ≤ *a*², иными словами, округление вверх точного квадратного корня из *n*. Для положительного *n* это можно вычислить с помощью `a = 1 + isqrt(n - 1)`.

#### `math.integer.lcm(*integers)`

Возвращает наименьшее общее кратное указанных целых аргументов. Если все аргументы не равны нулю, возвращается наименьшее положительное целое число, кратное всем аргументам. Если хотя бы один аргумент равен нулю, возвращается `0`. Вызов `lcm()` без аргументов возвращает `1`.

#### `math.integer.perm(n, k=None, /)`

Возвращает количество способов выбрать *k* элементов из *n* без повторений и с учётом порядка.

Вычисляется в `n! / (n - k)!`, когда `k <= n`, и в ноль, когда `k > n`.

Если *k* не указан или равен `None`, то *k* по умолчанию принимается равным *n*, и функция возвращает `n!`.

Возбуждает [`ValueError`](https://python-all.ru/3.16/library/exceptions.html#ValueError), если хотя бы один из аргументов отрицательный.
