Присоединиться

11 класс·высокий уровень

Укажите наименьшее из таких чисел x, при вводе которых алгоритм

Условие

Ниже на пяти языках записан алгоритм. Получив на вход число 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 Bx = int(input())a, b = 0, 1while x > 0: a = a+1 b = b*(x%1000) x = x//1000print(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;}

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Заметим, что так как a = 2, то 1000⩽x<10000001000 \leqslant x < 1000000 Всего две итерации цикла. Так как 11 — простое число, то в одной итерации x mod 1000 должно быть равно 11, а в другой —

Осталось ещё 3 шага

  1. Число получится меньше, если 11 будет…

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

  3. x = x // 1000 if a == 2 and b == 11: print(i)…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Анализ программы с циклами и условными операторами»