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

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

 

C++Python

#include <iostream>

using namespace std;

 

int main()

{

    int x, a, b;

    cin >> x;

    a = 7*x + 27;

    b = 7*x – 33;

    while (a != b) {

        if (a > b)

            a -= b;

        else

            b -= a;

        }

    cout << a << endl;

    return 0;

}

x = int(input())

a = 7*x + 27

b = 7*x - 33

while a != b:

    if a > b:

        a -= b

    else:

        b -= a

print(a)

 

 

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

var x, a, b: integer;

begin

    readln(x);

    a := 7*x + 27;

    b := 7*x – 33;

    while a <> b do begin

        if a > b then

            a := a – b

        else

            b := b-a

    end;

    writeln(a)

end.

 

алг

нач

    цел x, a, b

    ввод x

    a := 7*x + 27

    b := 7*x – 33

    нц пока a <> b

        если a > b

            то a := a – b

            иначе b := b - a

        все

    кц

    вывод a, нс

кон

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

Ре­ше­ние.

Режим за­да­чу с по­мо­щью языка PascalABC пе­ре­бо­ром. Ниже при­ве­де­на про­грам­ма для ре­ше­ния этой за­да­чи. За­ме­тим, что если на­чи­нать пе­ре­бор с еди­ни­цы, то вы­пол­не­ние про­грам­мы будет за­ви­сать из-за на­ли­чия от­ри­ца­тель­ных чисел. Не­об­хо­ди­мо на­чи­нать пе­ре­бор с числа, ко­то­рое в ре­зуль­та­те умно­же­ния на семь будет боль­ше 33, такое число  — 5.

var x, a, b, i: integer;

begin

for i := 5 to 1000 do begin

x := i;

a := 7*x + 27;

b := 7*x - 33;

while a <> b do begin

if a > b then

a := a - b

else

b := b-a

end;

if a = 10 then begin

writeln(i);

break;

end;

end;

end.

В ре­зуль­та­те ра­бо­ты про­грам­мы по­лу­ча­ем ответ  — 29.

 

Ответ: 29.

 

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

for i in range(5, 10000):

x = i

a = 7 * x + 27

b = 7 * x - 33 # на­чи­на­ем с 5, чтобы b>0, иначе не по­пасть на else

while a != b:

if a > b:

a -= b

else:

b -= a

if a == 10:

print(i)

break

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