На обеденном перерыве, когда было совсем жарко, один программист решил поиздеваться над другим. Он сказал:
— Я загадал два разных числа от 1 до 9, сможешь угадать их сумму?
— Да ну, ты чего, там же куча вариантов.
— Окей, дам подсказку: последняя цифра в произведении моих чисел такая же, как номер моего дома.
— Так я же не знаю номер твоего дома. Хотя подожди, я понял!
И второй программист сразу же назвал сумму двух загаданных чисел. Как он это сделал?
Так как второй программист понял, как решить эту задачу только после информации о произведении чисел, сделаем то же самое: посмотрим, чему равно произведение всех чисел от 1 до 9:
Раз нам всё равно, в каком порядке первый программист загадал свои числа, а важен только результат умножения, то мы отбросим половину значений — а всё потому, что 2 × 6 = 6 × 2. Поэтому убираем нижнюю половину таблицы — она дублирует верхние значения:
В условии сказано, что первый программист загадал разные числа, поэтому диагональ с результатами тоже можно отбросить — там результат умножения одинаковых чисел:
Так как последняя цифра в результате произведения совпадает с номером дома первого программиста, можно сделать вывод, что номер дома — однозначное число от 1 до 9 (потому что нумерация домов начинается с единицы, а не с нуля).
Теперь самая нудная часть решения: нам нужно по очереди сравнить все числа от 1 до 9 с последними цифрами произведений, и если таких результатов будет больше одного — отбросить их. Дело в том, что второй программист сразу понял ответ, а это можно сделать, только когда вариантов решения не больше одного.
Для примера подробно разберём число 1: находим все результаты произведений, которые заканчиваются на единицу:
Такой результат у нас только один — это число 21. Кажется, что мы сразу нашли верный ответ, но вдруг нет? Нужно точно так же проверить все остальные числа — возможно, будет ещё такое уникальное произведение.
Проверяем двойку:
А здесь у нас получилось сразу много произведений с двойкой на конце, поэтому все эти результаты можно отбрасывать как неверные (они не дают однозначного ответа). Точно так же проверим всё остальное и вычеркнем неоднозначные результаты.
Проверяем тройку:
Проверяем четвёрку:
Проверяем пятёрку:
Проверяем шестёрку:
Проверяем семёрку:
Проверяем восьмёрку:
Проверяем девятку: у неё тоже один результат, поэтому тоже оставляем его как один возможных.
А всё, что заканчивается на ноль, тоже убираем — у нас нет ноля среди загаданных чисел:
Итак, у нас остались всего два числа: 9 и 21, и по идее нам нужно как-то выбрать одно из них, чтобы найти исходную пару чисел и выяснить их сумму. Но давайте посмотрим на то, произведение каких чисел даёт эти результаты:
1 × 9 = 9
3 × 7 = 21
А теперь попробуем сложить эти числа:
1 + 9 = 10
3 + 7 = 10
И там и там сумма равна 10, а значит, мы можем дать правильный ответ в любом случае: сумма загаданных чисел равна 10.
А теперь нужно перестать страдать ерундой, быстро доделать дела и пойти на речку.