СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
Информатика
Cайты, меню, вход, новости


Задания
Версия для печати и копирования в MS Word
Задание 20 № 15930

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12.

 

 

БейсикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    IF X MOD 2 > 0 THEN

        A = A + X MOD 8

    ELSE

        B = B * X MOD 8

    END IF

    X = X \ 8

WEND

PRINT A

PRINT B

 

x = int(input())

a=0; b=1

while x > 0:

    if x%2 > 0:

        a += x%8

    else:

        b = b * (x%8)

    x = x//8

print(a, b)

 

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

var x, a, b: longint;

begin

    readln(x);

    a := 0; b := 1;

    while x > 0 do begin

        if x mod 2 > 0 then

            a := a + x mod 8

        else

            b := b * (x mod 8);

        x := x div 8;

    end;

    writeln(a); write(b);

end.

 

алг

нач

    цел x, a, b

    ввод x

    a := 0; b := 1

    нц пока x > 0

        если mod(x,2)>0

            то a := a + mod(x,8)

            иначе b := b*mod(x,8)

        все x := div(x,8)

    кц

    вывод a, нс, b

кон

 

С++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0) {

        if (x%2 > 0)

            a += x%8;

        else

            b *= x%8;

        x = x / 8;

    }

    cout << a << endl << b << endl;

    return 0;

}

 

 

Решение.

Заметим, что это значит, что число x должно 2 раза поделиться на 2 c остатком, т.е. если число x нечётное, то к числу a прибавляется остаток от деления числа x на 8. Есть только один вариант, как получить сумму нечётных цифр, равную 2 — 1 + 1. Следовательно, поскольку необходимо найти наибольшее число x, в двух младших разрядах будут стоять единицы.

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

 

Ответ: 3209.