Задача к ЕГЭ по информатике на тему «программирование – циклы, условия» №4

Ниже на трёх языках программирования записан алгоритм. Получив на вход число x  , этот алгоритм печатает два числа: L  и M  . Укажите наибольшее из таких чисел x  , при вводе которых алгоритм печатает сначала 3  , а потом 120  .

|-------------------------------|-----------------------|------------------------------| |Pascal                         |P ython                 | C + +                        | |-------------------------------|-----------------------|------------------------------| |var x, L, M : integer;         |x =  int(input())        | #include < iostream  >         | |begin                           |L  = 0                 | using namespace std;           | |     readln (x);                 |M  =  1                | int main() {                  | |                               |                       |                              | |     L := 0;                   |while x > 0 :          |      int L, M, x;            | |     M  := 1;                  |      L =  L + 1       |      cin  >>  x;              | |     while x > 0 do begin       |      M  = M  ∗ (x % 8)|      L =  0;                 | |          L  :=  L +  1         |      x = x ∕∕ 8       |      M  =  1;                | |                               |                       |                              | |          M   :=  M  ∗ (x mod 8);|print(L )               |      while (x > 0) {         | |          x  :=  x div 8;        |print(M )               |           L  = L  + 1;       | |     end;                      |                       |           M  =  M  ∗ (x % 8);| |                               |                       |                              | |     writeln(L);                |                       |           x  = x ∕ 8;        | |     writeln(M );               |                       |      }                       | |end.                           |                       |      cout <<  L <<  endl;    | |                               |                       |                              | |                               |                       |      cout <<  M  <<  endl;    | |                               |                       |      return 0;                | |                               |                       | }                            | ----------------------------------------------------------------------------------------

for i in range(1, 10000):
    x = i
    L = 0
    M = 1
    while x > 0:
        L = L+1
        M = M * (x % 8)
        x = x//8
    if L == 3 and M == 120:
        maxim = i
print(maxim)

Ответ: 428
Оцените статью
Я решу все!