Автомат получает на вход трехзначное число. По этому числу строится новое число по следующим правилам.
1. Перемножаются первая и вторая, а также вторая и третья цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример. Исходное число: 291. Произведения: ;
. Результат: 189.
Укажите наименьшее число, в результате обработки которого автомат выдаст число 153.
Решение программой:
for i in range(100,300):
p1 = int(str(i)[0])*int(str(i)[1])
p2 = int(str(i)[1])*int(str(i)[2])
r = str(max(p1,p2))+str(min(p1,p2))
if int(r) == 153:
print(i)
break
Максимальное значение, которое можно получить при перемножении двух цифр, — 81. Поэтому разобьем результат работы алгоритма на числа, не превышающие 81, записанные в порядке убывания: 15|3.
Теперь подберем наиболее выгодное для нас разложение числа 3. Так как разложение 3 единственное, его и возьмем в качестве наиболее выгодного: .
Теперь подберем наиболее выгодное для нас разложение числа 6. Наша задача подобрать такое разложение, чтобы одно из чисел в произведении было минимальным:
Значит, — самое выгодное для нас разложение числа 15. В остальных случаях мы не сможем получить минимальное число.
Поскольку в результате работы алгоритма нам необходимо получить 153, исходя из разложений, получим ответ — 135.
Проверим его: , запишем результаты в порядке убывания: 153.