Один программист пришёл к другому и, немного выпив, говорит:
— Загадай любое натуральное число X!
— Отстань
— Нет, загадай.
— Ну, загадал.
— А теперь придумай три любых целых числа от 6 до 8 включительно.
— Придумал, и что дальше?
— А теперь умножь своё начальное число X на первое из них, прибавь второе и отними третье. Сколько у тебя получилось?
— Минутку… 164.
— Ха, а я знаю, какие ты числа загадал!
— Что, все четыре числа вычислил?!
— Ага!
— НО КАК?!
Действительно, как первому программисту удалось узнать все числа, которые загадал второй?
Обозначим три загаданных числа от 6 до 8 как A, B и C. Если мы сделаем всё, как написано в задаче, то получим равенство: A × X + B − C = 164.
Из этого получим X:
X = (164 − B + C) / A
Исключаем число 7
Если A = 7, то числитель нашей дроби должен нацело делиться на 7, потому что X не может быть дробным (по условию X — натуральное число). Числа, близкие к 164, которые делятся на 7 — это 161 и 168.
Чтобы получить 161 в числителе, числа B и C должны отличаться друг от друга на 3, а это невозможно, потому что максимальная разница равна 8 − 6 = 2.
Чтобы получить 168 в числителе, числа B и C должны отличаться друг от друга на 4, а это тоже невозможно, потому что максимальная разница равна 8 − 6 = 2.
Значит, A точно не равно 7. Запомним это.
Если число A точно не 7, то оно чётное — 6 или 8. Это значит, что числитель (164 − B + C) тоже чётный, чтобы в результате деления получилось целое число. А это возможно, если числа B и C оба чётные или оба нечётные.
Если числа B и C оба нечётные, то это возможно только в случае, если они оба равны 7. В этом случае −B + C = 0, и в числителе остаётся только 164, которое нам предстоит разделить на 6 или 8. Но 164 не делится нацело ни на 6, ни на 8, значит, они тоже не равны 7.
Исключаем одинаковые B и C
Из последнего примера мы видели, что B и С не могут быть одинаковыми в принципе, неважно, чётными или нечётными, поэтому остаются только два варианта:
B = 6, C = 8 или B = 8, C = 6.
Проверяем оставшиеся варианты
Если B = 6 и C = 8, то в числителе получается так: (164 – 6 + 8) = 166. Но 166 не делится нацело ни на 6, ни на 8 (возможные значения A), значит, этот вариант можно исключить.
Получается, что остаётся только пара B = 8 и C = 6: (164 – 8 + 6) = 162. Число 162 нацело делится только на 6: 162 / 6 = 27, значит, A = 6, а второй программист загадал число 27:
X = 27
A = 6
B = 8
C = 6
Проверяем: 6 × 27 + 8 − 6 = 164. Всё сходится.