Вопрос задан 12.04.2025 в 20:16. Предмет Информатика. Спрашивает Михайлов Кирилл.

Даны два натуральных числа n и m. Если одно из них делится на другое нацело, выведите 1, иначе выведите любое другое целое число.

При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.

Входные данные
Вводятся два натуральных числа n и m.

Выходные данные
Выведите ответ на задачу.

Примеры
входные данные
2
8
выходные данные
1
входные данные
8
2
выходные данные
1

Перейти к ответам

Ответы на вопрос

Отвечает Жаріков Олег.

Для решения задачи без использования условной инструкции if и циклов можно воспользоваться свойствами арифметических операций. Рассмотрим подход к решению:

  1. Если одно число делится на другое без остатка, то остаток от деления равен нулю. Например, для чисел 8 и 2: 8mod2=08 \mod 2 = 0.

  2. Чтобы преобразовать результат проверки делимости в число, можно использовать свойства выражения (amodb)(a \mod b). Если остаток равен 00, то деление было нацело.

  3. Для вывода результата 11, если одно число делится на другое, и другого числа в противном случае, используем формулу:

    результат=1+((n%m)(m%n))\text{результат} = 1 + ((n \% m) \cdot (m \% n))

    Объяснение:

    • Если nmodm=0n \mod m = 0, то mmodnm \mod n тоже равно 00, так как одно из чисел делится на другое.
    • В этом случае (n%m)(m%n)=0(n \% m) \cdot (m \% n) = 0, а результат равен 1+0=11 + 0 = 1.
    • Если ни одно из чисел не делится на другое, хотя бы одно из выражений n%mn \% m или m%nm \% n будет ненулевым, и итоговое выражение даст число больше 11.

Код

На языке Python решение будет выглядеть следующим образом:

python
n, m = map(int, input().split()) print(1 + (n % m) * (m % n))

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

Входные данные:

2 8

Выходные данные:

1

Входные данные:

8 2

Выходные данные:

1

Входные данные:

3 7

Выходные данные:

2

Таким образом, программа корректно работает без использования условных конструкций или циклов.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос