Задание:
Ниже записана программа. Получив на вход число x , эта программа печатает два числа, a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 36.
var x, a, b : integer;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
a := a + 1;
b := b * (x mod 10);
x := x div 10;
end;
writeln(a); write(b);
end.
Решение:
а=3, следовательно цикл будет выполнен трижды.
b := b * (x mod 10);
x mod 10 – остаток от деления на 10, то есть последняя цифра. Например: 314 mod 10 =4
x := x div 10; x div 10 – целая часть от деления на 10. Например: 314 div 10 =34
Переменная b - произведение всех цифр в числе.
Переменная а говорит нам сколько цифр в числе.
У нас трехзначное число с произведением цифр 36.
Нам надо найти минимальное такое число, тогда старший разряд нужно взять наименьшим – 1. Произведение двух оставшихся разрядов равно 36, при этом каждый не превышает 9; это числа 4 и 9. Получим число 149.
Ответ: 149