Делимость

Базовый Algorithms
≈ 2 мин чтения

Остаток от деления отвечает на вопрос о кратности

Число a делится на b без остатка, если a % b == 0. Эта простая проверка лежит в основе большого количества задач: найти кратные числа, посчитать делители, определить чётность или проверить общие свойства чисел.

int number = 42;

if (number % 7 == 0) {
    System.out.println("Divisible");
}

Здесь 42 % 7 равно нулю, поэтому число кратно семи.

Поиск делителей

Делитель числа — это значение, на которое число делится без остатка. Самый прямой способ найти делители положительного числа — перебрать кандидатов и проверить каждый через %.

int number = 12;

for (int divisor = 1; divisor <= number; divisor++) {
    if (number % divisor == 0) {
        System.out.println(divisor);
    }
}

Для 12 будут найдены 1, 2, 3, 4, 6 и 12. Пока нам важнее сама связь между перебором и проверкой делимости; способы уменьшать количество проверок появятся позже.

Несколько условий делимости

Проверки можно комбинировать обычными логическими операторами. Например, число кратно и 3, и 5, если оба остатка равны нулю.

boolean divisibleByBoth = number % 3 == 0 && number % 5 == 0;

Важно читать такое условие буквально: каждая часть отвечает за отдельное требование, а && означает, что должны выполняться оба.

На ноль делить нельзя. Операция number % 0, как и целочисленное деление на ноль, приводит к ArithmeticException.