Подключиться через MCP →

Введите расчет

Математическая формула

Реклама

Результатов

Проверка по Луну
VALID
Количество цифр 11
Сумма по Луну 70
Сумма mod 10 0
Контрольная цифра (последняя) 3

Что такое алгоритм Луна?

Алгоритм Луна (его также называют «формулой mod 10») — это простая схема расчёта контрольной суммы, которую в 1954 году предложил инженер компании IBM Ханс Петер Лун. С его помощью проверяют идентификационные номера: номера кредитных и дебетовых карт, серийные номера телефонов IMEI, а во многих странах — и номера документов. Алгоритм улавливает ошибку в одной цифре и большинство перестановок соседних цифр, однако это не криптографическая защита, а лишь базовая проверка целостности данных.

Как пользоваться калькулятором

Введите проверяемое число в поле (пробелы и дефисы убираются автоматически). Калькулятор обработает цифры, применит контрольную сумму Луна и сообщит, является ли число ВЕРНЫМ или НЕВЕРНЫМ, а также покажет итоговую сумму, остаток от деления на 10 и последнюю контрольную цифру.

Разбор формулы

Читайте цифры справа налево. Самую правую (контрольную) цифру оставьте без изменений, а каждую вторую цифру удвойте. Если при удвоении получается число больше 9, вычтите из него 9 (это то же самое, что сложить две его цифры: например, \(8\times2=16 \to 1+6=7\)). Сложите все полученные значения. Если итог делится на 10 без остатка, число проходит проверку Луна.

$$\text{Valid} \iff \left(\sum_{i=0}^{n-1} f(d_i)\right) \bmod 10 = 0 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= i\text{-th digit of } \text{Number} \text{ (from right)} \\ f(d_i) &= \begin{cases} d_i & i \text{ even} \\ 2d_i - 9\,[2d_i>9] & i \text{ odd} \end{cases} \end{aligned} \right.$$
Плоская схема, показывающая удвоение цифр в алгоритме Луна справа, где чередующиеся цифры удваиваются и суммируются
Алгоритм Луна удваивает каждую вторую цифру справа, а затем суммирует все цифры.

Пример с расчётом

Возьмём число 79927398713. Удваиваем каждую вторую цифру справа и уменьшаем значения больше 9 — в результате сумма скорректированных цифр равна 70. Поскольку \(70 \bmod 10 = 0\), число верное.

Плоская блок-схема, показывающая проверку Луна, заканчивающуюся тестом по модулю 10 с ветвлением на «действителен» или «недействителен»
Если общая сумма делится на 10, номер действителен.

Частые вопросы

Если число прошло проверку Луна, значит ли это, что карта настоящая? Нет. Проверка лишь подтверждает, что номер составлен правильно; она не показывает, существует ли такой счёт и есть ли на нём средства.

Какие символы можно вводить? Учитываются только цифры; пробелы, дефисы и другие символы удаляются перед расчётом.

Зачем вычитать 9 при удвоении? Вычитание 9 из удвоенной цифры, превышающей 9, даёт тот же результат, что и сложение двух её цифр, — а именно этого и требует исходное правило Луна.

Последнее обновление: