Задания
Версия для печати и копирования в MS Word
Тип Д22 № 33194
i

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

 

C++Python

#include <iostream>

using namespace std;

 

int main()

{

    int x, a;

    cin >> x;

    a = 1;

    while (x > 0) {

        a *= x % 11;

        x = x / 11;

    }

    cout << a << endl;

    return 0;

}

x = int(input())

a = 1

while x > 0:

    a *= x % 11

    x = x // 11

print(a)

 

Пас­кальАл­го­рит­ми­че­ский язык

var x, a: integer;

begin

    readln(x);

    a := 1;

    while x > 0 do begin

        a := a * (x mod 11);

        x := x div 11

    end;

    writeln(a)

end.

 

алг

нач

    цел x, a

    ввод x

    a := 1

    нц пока x > 0

        a := a * mod(x,11)

        x := div(x,11)

    кц

    вывод a

кон

Спрятать решение

Ре­ше­ние.

За­ме­тим, что число x долж­но быть трёхзнач­ным. По­сколь­ку нам не­об­хо­ди­мо найти наи­мень­шее x, а число 120 можно по­лу­чить умно­же­ни­ем трёх чисел, каж­дое из ко­то­рых мень­ше 11.

Не­об­хо­ди­мо по­лу­чить один­на­дца­ти­рич­ное число, у ко­то­ро­го про­из­ве­де­ние цифр вто­ро­го и пер­во­го раз­ря­дов равно 12. Сле­до­ва­тель­но, по­сколь­ку не­об­хо­ди­мо найти наи­мень­шее воз­мож­ное число x, у ко­то­ро­го цифры вто­ро­го и пер­во­го раз­ря­дов после про­из­ве­де­ния дают 12, число x долж­но вы­гля­деть так 26A11 = 31810.

 

Ответ: 318.

 

При­ведём дру­гое ре­ше­ние на языке Python.

for i in range(10000):

x = i

a = 1

while x > 0:

a *= x % 11

x = x // 11

if a == 120:

print(i)

break

Раздел кодификатора ФИПИ: