Привет! Давай решим эту задачку с командами для Квадра.
У нас есть две команды:
Нужно из числа 3 получить 10001, используя не более 6 команд.
Смотри, 10001 — это довольно большое число. Возведение в квадрат — самая мощная операция. Попробуем начать с нее.
Если мы возведем 3 в квадрат, получим 9. Еще раз — 81. И еще раз — 6561. Это уже близко к 10001!
Давай проверим такую последовательность:
Сейчас у нас 6561, а нужно 10001. Разница составляет 10001 - 6561 = 3440.
Мы использовали 3 команды. Осталось 3 команды, чтобы получить 3440, прибавляя 1.
Это невозможно, так как даже если мы прибавим 1 три раза, получим всего 3.
Давай подумаем иначе. Может, возведем в квадрат не три раза, а два?
Теперь у нас 81. Нужно получить 10001. Разница: 10001 - 81 = 9920.
У нас осталось 4 команды, чтобы прибавить 1, то есть максимум мы можем добавить 4.
Это тоже не работает.
Может, стоит сначала прибавить, а потом возвести в квадрат?
Давай попробуем так:
Это далеко от 10001.
Что если мы сначала прибавим много раз, а потом возведем в квадрат?
Квадрат какого числа близок к 10001? Корень из 10001 примерно 100.005.
Значит, нам нужно получить число, близкое к 100, а потом возвести его в квадрат.
Давай попробуем получить 100, прибавляя 1.
Чтобы из 3 получить 100, нам нужно прибавить 97 раз. Это слишком много команд.
Давай вернемся к квадратам. 10001. Что если использовать команду «прибавь 1» после возведения в квадрат?
Попробуем такую комбинацию:
Теперь у нас 101. Нам нужно 10001. Осталось 2 команды.
Если мы возведем 101 в квадрат: 101 * 101 = 10201. Это больше, чем нужно.
Что если мы попробуем получить число, квадрат которого плюс что-то будет 10001?
Например, 100^2 = 10000. Нам не хватает 1.
Значит, нам нужно получить 100, а потом прибавить 1.
Как получить 100 из 3 за 5 команд (чтобы оставить одну команду на +1)?
Мы уже видели, что 2 (3 -> 9), 1 (9 -> 10), 2 (10 -> 100). Это 3 команды.
Итак:
У нас 100, использовано 3 команды. Осталось 3 команды, чтобы получить 10001.
Если мы теперь сделаем:
Это опять не то.
Давай попробуем получить 10000, а потом прибавить 1.
Как получить 10000? Это 100 * 100.
Чтобы получить 100 из 3, мы можем сделать:
Это 3 команды. Теперь у нас 100.
Нам нужно 10001. Мы можем сделать:
Получилось! Программа:
2, 1, 2, 2, 1
Давай проверим: 3 --(2)--> 9 --(1)--> 10 --(2)--> 100 --(2)--> 10000 --(1)--> 10001.
Это 5 команд. Это меньше 6. Отлично!
Ответ: 21221