25 баллов даю пожалуйста объясните

0 голосов
21 просмотров

25 баллов даю пожалуйста объясните


image

Информатика (30 баллов) | 21 просмотров
Дан 1 ответ
0 голосов

ответ: 502

как нашел? написал программу на питоне которая перебирает все х до 10000000 но дальше 502 он не нашел ни единого. далее идет код на питоне можешь посмотреть.

for x in range(10000000):

   a = x

   L = 1

   M = 0    

   while x > 0:

       M = M + 1

       if x %2 == 0:

           L = L * (x % 8)

       x = x // 8

   if L==36 and M==3:

       print(a)

       print(L)

       print(M)

       print()

А да еще объяснение задачи: тебе дали программу или функцию можно называть как хочешь которая при вводе х выдает два числа L и  M. И тебя спрашивают при каком самом большом вводе х функция выдаст 36 и 3. Решить задачу можно двумя способами первое математически понять как работает функция и составить обратный алгоритм. Но функция составлена так что выдает кализии (что означает если ты введешь две разные значения ответ выдаст одинаковый). Из за этого пришлось решить задачу вторым способом методом перебора.  И программа выдала что наибольшее значение это 502

(304 баллов)