Как определить взаимно простые числа в Excel: 5 рабочих методов с примерами

Взаимно простые числа — это пара (или набор) чисел, у которых нет общих делителей кроме 1. Например, 8 и 15 взаимно просты, так как их наибольший общий делитель (НОД) равен 1, а вот 12 и 18 — нет (НОД = 6). В ручном режиме проверять такие числа просто, но что делать, если у вас список из сотен значений в Excel? Автоматизация этой задачи сэкономит часы работы.

В этой статье мы разберём 5 способов определения взаимно простых чисел в Excel — от базовых формул до продвинутых скриптов на VBA. Вы узнаете, как:

  • 🔹 Использовать функцию НОД для парных и массовых проверок
  • 🔹 Применять формулы массива для анализа диапазонов
  • 🔹 Автоматизировать процесс с помощью Power Query и VBA
  • 🔹 Визуализировать результаты с условным форматированием
  • 🔹 Избегать типичных ошибок при работе с большими числами

Методы подойдут для Excel 2010–2023 и Microsoft 365, а также для Google Sheets (с поправками на синтаксис). Если вы работаете с криптографией, теорией чисел или просто решаете математическую задачу — эта инструкция поможет оптимизировать процесс.

📊 Как часто вы используете математические функции в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Никогда

1. Базовый метод: функция НОД для пары чисел

Самый простой способ проверить взаимную простоту двух чисел — использовать встроенную функцию НОД (или GCD в английской версии). Она возвращает наибольший общий делитель аргументов. Если результат равен 1 — числа взаимно просты.

Формула для ячеек A1 и B1:

=ЕСЛИ(НОД(A1;B1)=1; "Взаимно простые"; "Не взаимно простые")

Пример работы:

Число 1 (A)Число 2 (B)Результат
815Взаимно простые
1218Не взаимно простые
2536Взаимно простые
10075Не взаимно простые

⚠️ Внимание: Функция НОД работает только с целыми числами. Если в ячейках дробные значения, Excel округлит их до ближайшего целого, что может привести к ошибкам. Например, НОД(9.9; 14.1) вернёт НОД(10; 14) = 2, хотя исходные числа не целые.

2. Проверка взаимной простоты для диапазона чисел

Если нужно проверить взаимную простоту всех пар чисел в столбце (например, для списка из 100 элементов), базовая функция НОД не подойдёт — она анализирует только два аргумента. Здесь поможет формула массива с комбинацией НОД и И.

Допустим, у вас числа в диапазоне A2:A10. Чтобы проверить, взаимно просты ли все числа в этом списке (т.е. НОД любой пары равен 1), используйте:

=ЕСЛИ(И(НОД(A2:A10;A2:A10)=1); "Все взаимно просты"; "Есть не простые пары")

Вводите формулу как формулу массива: после ввода нажмите Ctrl+Shift+Enter (в новых версиях Excel это не обязательно).

🔹 Как это работает:

  • 📌 НОД(A2:A10;A2:A10) создаёт матрицу НОД для всех возможных пар в диапазоне.
  • 📌 И(...=1) проверяет, что все значения в этой матрице равны 1.
  • 📌 Если хотя бы одна пара имеет НОД > 1, результат будет ЛОЖЬ.
Почему формула возвращает #ЗНАЧ!?

Ошибка #ЗНАЧ! возникает, если в диапазоне есть пустые ячейки или текст. Используйте =ЕЧИСЛО(A2:A10) для фильтрации данных.

3. Поиск взаимно простых пар в таблице

Предположим, у вас есть таблица с двумя столбцами (A и B), и нужно отметить строки, где числа взаимно просты. Для этого:

  1. В столбце C введите формулу:
    =ЕСЛИ(НОД(A2;B2)=1; "✅ Да"; "❌ Нет")
  2. Растяните формулу на весь диапазон.
  3. Добавьте условное форматирование для визуального выделения:

    - Выделите столбец C.

    - Перейдите в Главная → Условное форматирование → Создать правило.

    - Установите формат для ячеек, содержащих текст "✅ Да" (зелёный фон).

Пример результата:

ABВзаимно простые?
1425✅ Да
2128❌ Нет
3512✅ Да

⚠️ Внимание: Если в таблице больше 10 000 строк, формулы массива могут значительно замедлить работу файла. В таких случаях лучше использовать Power Query или VBA (см. разделы 4 и 5).

Удалить пустые ячейки|Проверить формат чисел (должны быть "Общий" или "Числовой")|Отсортировать данные по возрастанию (опционально)|Создать резервную копию файла-->

4. Автоматизация с Power Query

Power Query (или Get & Transform в новых версиях) позволяет обрабатывать большие массивы данных без формул. Вот как проверить взаимную простоту для пар чисел:

  1. Выделите исходные данные и нажмите Данные → Из таблицы/диапазона (или Data → From Table/Range).
  2. В редакторе Power Query добавьте пользовательский столбец:

    - Нажмите Добавить столбец → Пользовательский столбец.

    - Введите формулу:

    = if Number.Mod(Number.GCD([Число1], [Число2]), 1) = 0 then "Да" else "Нет"
  3. Загрузите данные обратно в Excel.

🔹 Преимущества метода:

  • 🚀 Обрабатывает миллионы строк без замедления.
  • 🔄 Легко обновляется при изменении исходных данных.
  • 📊 Можно добавить дополнительные столбцы (например, сам НОД для анализа).

🔹 Недостатки:

  • ⚠️ Требует знания синтаксиса M (язык Power Query).
  • ⚠️ Не поддерживает динамические диапазоны (нужно обновлять вручную).

5. Продвинутый метод: VBA-скрипт для массовой проверки

Если вам нужно регулярно проверять взаимную простоту для больших наборов данных, напишите простую процедуру на VBA. Например, этот скрипт проверяет все пары в выделенном диапазоне и выводит результат в новой таблице:

Sub CheckCoprime()

Dim rng As Range, cell1 As Range, cell2 As Range

Dim i As Long, j As Long, lastRow As Long

Dim ws As Worksheet

Set ws = ActiveSheet

Set rng = Selection

lastRow = ws.Cells(ws.Rows.Count, rng.Column).End(xlUp).Row

' Создаём заголовки для результата

ws.Cells(1, rng.Column + 2).Value = "Число 1"

ws.Cells(1, rng.Column + 3).Value = "Число 2"

ws.Cells(1, rng.Column + 4).Value = "Взаимно простые?"

' Проверяем все пары

Dim resultRow As Long: resultRow = 2

For i = 1 To lastRow

For j = i + 1 To lastRow

If Application.WorksheetFunction.GCD(rng.Cells(i, 1), rng.Cells(j, 1)) = 1 Then

ws.Cells(resultRow, rng.Column + 2).Value = rng.Cells(i, 1).Value

ws.Cells(resultRow, rng.Column + 3).Value = rng.Cells(j, 1).Value

ws.Cells(resultRow, rng.Column + 4).Value = "Да"

resultRow = resultRow + 1

End If

Next j

Next i

End Sub

🔹 Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите диапазон с числами и запустите макрос (F5).

⚠️ Внимание: Скрипт создаёт комбинации всех возможных пар в диапазоне. Для 100 чисел это 4950 строк результата! Если данных много, используйте фильтрацию или разбивайте задачу на части.

6. Типичные ошибки и как их избежать

При работе с взаимно простыми числами в Excel пользователи часто сталкиваются с следующими проблемами:

ОшибкаПричинаРешение
#ЧИСЛО! Отрицательные числа или ноль Используйте =АБС(A1) для модуля
#ЗНАЧ! Текст или пустые ячейки Добавьте проверку =ЕЧИСЛО(A1)
Медленная работа Слишком много формул массива Перейдите на Power Query или VBA
Неверный НОД Дробные числа округлены Примените =ЦЕЛОЕ(A1) перед НОД

🔹 Совет для больших чисел:

Функция НОД в Excel имеет ограничение: она корректно работает с числами до 2^53 - 1 (около 9×10¹⁵). Для бо́льших значений используйте Python с библиотекой math.gcd или специализированные математические пакеты.

FAQ: Частые вопросы по взаимно простым числам в Excel

Можно ли проверить взаимную простоту для трёх и более чисел?

Да, но нужно убедиться, что НОД всех пар в наборе равен 1. Например, для чисел 6, 10, 15:

  • НОД(6;10) = 2 → уже не взаимно просты.

Используйте формулу массива:

=ЕСЛИ(МИН(ЕСЛИ(НОД($A$2:$A$4;$A$2:$A$4)>1;НОД($A$2:$A$4;$A$2:$A$4);""))="";"Взаимно просты";"Не взаимно просты")

Как найти все взаимно простые пары в диапазоне автоматически?

Лучше использовать VBA (см. раздел 5) или Power Query. Вручную это займёт слишком много времени. Альтернатива — создать таблицу со всеми комбинациями через Промежуточные итоги и затем применить НОД.

Почему НОД(0;5) возвращает 5, а не ошибку?

Математически НОД(0; n) = n, так как ноль делится на любое число. Если вам нужно исключить нули, добавьте проверку:

=ЕСЛИ(И(A1<>0;B1<>0);ЕСЛИ(НОД(A1;B1)=1;"Да";"Нет");"Ошибка: ноль")

Можно ли использовать Google Sheets вместо Excel?

Да, в Google Sheets есть аналогичная функция =GCD(A1;B1). Синтаксис формул массива отличается — вместо Ctrl+Shift+Enter используйте =ARRAYFORMULA(.... Пример:

=ARRAYFORMULA(IF(GCD(A2:A10;B2:B10)=1;"Да";"Нет"))

Как визуализировать взаимно простые числа на графике?

Создайте точечную диаграмму (XY Scatter Plot), где ось X — первое число, Y — второе. Используйте условное форматирование точек:

  1. Добавьте столбец с формулой =НОД(A2;B2).
  2. Постройте график, где цвет точек зависит от значения НОД (1 — зелёный, >1 — красный).