Ниже на четырёх языках программирования записана программа, которая вводит натуральное число x, выполняет преобразования, а затем выводит одно число. Укажите наименьшее возможное значение x, при вводе которого программа выведет число 48.
| C++ | Python |
|---|---|
#include <iostream> using namespace std;
int main() { int x, a; cin >> x; a = 1; while (x > 0) { a *= x % 7; x = x / 7; } cout << a << endl; return 0; }
| x = int(input()) a = 1 while x > 0: a *= x % 7 x = x // 7 print(a)
|
| Паскаль | Алгоритмический язык |
var x, a: integer; begin readln(x); a := 1; while x > 0 do begin a := a * (x mod 7); x := x div 7 end; writeln(a) end.
| алг нач цел x, a ввод x a := 1 нц пока x > 0 a := a * mod(x,7) x := div(x,7) кц вывод a кон |
Заметим, что число x должно быть трёхзначным. Поскольку нам необходимо найти наименьшее x, а число 48 можно получить умножением трёх чисел, каждое из которых меньше 7.
Необходимо получить семеричное число, у которого произведение цифр нулевого и первого разрядов равна 24. Следовательно, поскольку необходимо найти наименьшее возможное число x, у которого цифры нулевого и первого разрядов после произведения дают 24, число x должно выглядеть так 2467 = 13210.
Ответ: 132.
Приведём другое решение на языке Python.
for i in range(10000):
x = i
a = 1
while x > 0:
a *= x % 7
x = x // 7
if a == 48:
print(i)
break

