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

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

 

Бей­сик Python

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    A = A+1

    B = B*(X MOD 1000)

    X = X\1000

WEND

PRINT A

PRINT B

x = int(input())

a, b = 0, 1

while x > 0:

    a = a+1

    b = b*(x%1000)

    x = x//1000

print(a)

print(b)

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

алг

нач

    цел x, a, b

    ввод x

    a := 0; b := 1

    нц пока x > 0

        a := a+1

        b := b*mod(x, 1000)

        x := div(x, 1000)

    кц

    вывод a, нс, b

кон

var x, a, b: integer;

begin

    readln(x);

    a := 0; b := 1;

    while x > 0 do

    begin

        a := a+1;

        b := b*(x mod 1000);

        x := x div 1000;

    end;

    writeln(a); write(b);

end.

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0) {

        a = a+1;

        b = b * (x%1000);

        x = x/1000;

    }

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

    return 0;

}

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

Ре­ше­ние.

За­ме­тим, что так как a = 2, то 1000 мень­ше или равно x мень­ше 1000000.

Всего две ите­ра­ции цикла. Так как 11  — про­стое число, то в одной ите­ра­ции x mod 1000 долж­но быть равно 11, а в дру­гой  — 1. Число по­лу­чит­ся мень­ше, если 11 будет по­лу­че­но на пер­вой ите­ра­ции. По­лу­ча­ем число 1011.

 

Ответ: 1011.

 

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

for i in range(1, 10000):

x = i

a, b = 0, 1

while x > 0:

a = a + 1

b = b * (x % 1000)

x = x // 1000

if a == 2 and b == 11:

print(i)

break


Аналоги к заданию № 9204: 7310 9312 Все

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