Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: символ «?» означает ровно одну произвольную цифру; символ «*» означает любую последовательность…
- 1
Так как число не превышает $10^8$, после префикса 1234 и суффикса 54 может находиться не более двух цифр.
- 2
При пустой последовательности получается число $123454$, которое не делится на 21.
Ещё 3 шага — в полном решении
Запишите число, которое будет напечатано в результате выполнения следующей программы. Программа представлена на пяти языках программирования: Бейсик, Python, алгоритмическом языке, Паскале и Си. Во…
- 1
При каждом проходе цикла значение $s$ заменяется результатом целочисленного деления на 2.$$80 \to 40 \to 20 \to 10 \to 5 \to 2 \to 1 \to 0$$
- 2
До получения нулевого значения цикл выполняется 7 раз.
Ещё 1 шаг — в полном решении
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от −10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования…
- 1
Создаём переменную-накопитель суммы и инициализируем её нулём.
- 2
Последовательно просматриваем все 20 элементов массива.
Ещё 2 шага — в полном решении
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 10. Значения элементов равны 2, 5, 4, 7, 8, 10, 1, 0, 3, 9, 6 соответственно. Определите значение переменной $c$…
- 1
Изначально $A[0]=2$ и $c=0$. При $i=1$: $A[1]=5>2$, поэтому $c=1$, а $A[0]$ становится равным 5.$$A[0]=5,\quad c=1$$
- 2
При $i=2$: $A[2]=4\not>5$, значение $c$ не изменяется.
Ещё 3 шага — в полном решении
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Поскольку гарантируется наличие хотя бы одного элемента, оканчивающегося на 0, можно начать поиск минимума со значения $10000$.$$k = 10000$$
- 2
В первом проходе проверяем последнюю цифру каждого элемента. Если элемент оканчивается на 0 и меньше текущего минимума, сохраняем его в переменной $k$.$$a[i] \bmod 10 = 0 \land a[i] < k$$
Ещё 3 шага — в полном решении
Программа задаёт значения $s = 355$ и $n = 0$. Пока $s > 0$, она уменьшает $s$ на $20$ и увеличивает $n$ на $2$. Определите число, которое будет напечатано.
- 1
После $k$ итераций значение переменной $s$ равно:$$s = 355 - 20k$$
- 2
Цикл продолжается, пока $s > 0$. После 17 итераций $s = 15$, поэтому нужна ещё одна итерация. Всего цикл выполнится 18 раз.$$355 - 20 \cdot 17 = 15 > 0,\quad 355 - 20 \cdot 18 = -5 \leq 0$$
Ещё 1 шаг — в полном решении
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Сначала перебираем все элементы массива и накапливаем сумму тех, которые больше 150 и имеют чётное значение.$$S = \sum_{i=0}^{29} a_i \text{ при } a_i > 150 \text{ и } a_i \bmod 2 = 0$$
- 2
Вторым проходом снова проверяем это условие и заменяем каждый подходящий элемент найденной суммой.$$a_i := S$$
Ещё 2 шага — в полном решении
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$. Сначала строится двоичная запись числа $N$. Если сумма цифр в двоичной записи чётная, справа дописывается…
- 1
Проверяем значения $N$ по возрастанию, пока результат не станет больше 40.
- 2
Для $N=15$: $15_{10}=1111_2$. Сумма цифр равна 4, поэтому справа дописывается 0, а первые два разряда заменяются на 10: $1111_2\rightarrow10110_2=22_{10}$.
Ещё 2 шага — в полном решении
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −10 000 до 10 000 включительно. Гарантируется, что хотя бы один элемент массива делится нацело на 5…
- 1
Для поиска максимума среди элементов, кратных 5, введём переменную j с начальным значением −10001. Это значение меньше любого возможного элемента массива.$$j = -10001$$
- 2
Просматриваем все элементы массива. Если элемент делится на 5 и превосходит текущий максимум, обновляем значение j.$$a[i] \% 5 = 0 \land a[i] > j \Rightarrow j = a[i]$$
Ещё 2 шага — в полном решении
Напишите программу, которая перебирает целые числа, большие 2 920 573, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не обязательно…
- 1
Находим простые числа, в записи которых ровно одна цифра 9, и перебираем их произведения, начиная с чисел, больших 2 920 573.
- 2
Первое подходящее произведение — квадрат простого числа 1709.$$1709\cdot1709=2920681$$
Ещё 4 шага — в полном решении
Пусть $M$ — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение $M$ равным нулю. Напишите…
- 1
Для каждого числа $n$ ищем его наименьший делитель $p$, больший единицы. Если делителей, кроме 1 и самого числа, нет, значение $M$ равно нулю.$$M = 0$$
- 2
Если $p$ найден, то максимальный собственный делитель числа равен $n/p$, поэтому вычисляем значение $M$.$$M = p + \dfrac{n}{p}$$
Ещё 1 шаг — в полном решении
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: символ «?» означает ровно одну произвольную цифру; символ «*» означает любую последовательность…
- 1
Рассмотрим все числа, соответствующие маске 2*1?5?1 и не превышающие $10^8$. Проверяем варианты с пустой, одноразрядной и двухразрядной последовательностью вместо символа «*».
- 2
Для семизначного варианта число имеет вид $210501+1000a+10b$. Перебор цифр $a$ и $b$ с проверкой делимости на 1921 даёт число 213231.
Ещё 2 шага — в полном решении
Запишите число, которое будет напечатано в результате выполнения следующей программы. Для Вашего удобства программа представлена на пяти языках программирования.
- 1
В начале работы программы $s = 0$ и $n = 0$. На каждой итерации $s$ увеличивается на $8$, а $n$ — на $2$.$$s = 8k,\quad n = 2k$$
- 2
Найдём минимальное число итераций, при котором условие $s < 91$ перестанет выполняться:$$8k \geq 91 \Rightarrow k \geq 11{,}375$$
Ещё 1 шаг — в полном решении
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 9, 1, 2, 3, 4, 5, 6, 7, 8, 0 соответственно, то есть $A[0] = 9$, $A[1] = 1$ и т. д…
- 1
Изначально массив имеет вид $[9, 1, 2, 3, 4, 5, 6, 7, 8, 0]$, а $s = 0$.
- 2
При $j = 0$ условие $9 < 1$ ложно, обмена нет.
Ещё 3 шага — в полном решении
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$. Сначала строится двоичная запись числа $N$. Если сумма цифр в двоичной записи чётная, справа дописывается…
- 1
Последовательно проверим небольшие значения $N$. Для $N=1,2,3,4,5,6,7$ получаются значения $R$, не превосходящие $19$.$$R_1=3,\ R_2=7,\ R_3=4,\ R_4=13,\ R_5=10,\ R_6=8,\ R_7=15$$
- 2
Для $N=8$ двоичная запись имеет нечётную сумму цифр. Справа дописываем $1$, затем заменяем два левых разряда на $11$.$$8_{10}=1000_2\to10001_2\to11001_2$$
Ещё 1 шаг — в полном решении
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Для поиска минимума среди элементов, кратных 4, перебираем все элементы массива и проверяем условие делимости без остатка.$$a[i] \bmod 4 = 0$$
- 2
Переменную j первоначально задаём равной 10001 — числу, превосходящему максимальное возможное значение элемента массива. При нахождении подходящего элемента меньшего значения обновляем j.
Ещё 2 шага — в полном решении
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом. Строится двоичная запись числа $N$. Если сумма цифр в двоичной записи числа чётная, к…
- 1
Проверим значения $N$ начиная с наименьших. Для каждого числа строим двоичную запись и применяем указанное правило.
- 2
Для чисел от 1 до 10 получаются следующие значения: $R(1)=11$, $R(2)=7$, $R(3)=4$, $R(4)=13$, $R(5)=10$, $R(6)=8$, $R(7)=15$, $R(8)=25$, $R(9)=18$, $R(10)=20$. Ни одно из них не больше 29.
Ещё 2 шага — в полном решении
Цепочки символов (строки) создаются по следующему правилу. Первая строка состоит из одного символа — цифры «1». Каждая из последующих цепочек создаётся следующим действием: в очередную строку дважды…
- 1
Пусть $a_n$ — количество нечётных цифр в $n$-й строке. При переходе к следующей строке предыдущая строка записывается дважды.$$a_n = 2a_{n-1} + d(n)$$
- 2
Здесь $d(n)$ — количество нечётных цифр в записи числа $n$. Для чисел от 2 до 8 значения $d(n)$ равны $0, 1, 0, 1, 0, 1, 0$ соответственно.$$a_1=1$$
Ещё 1 шаг — в полном решении
Пусть $R$ — сумма различных натуральных делителей целого числа, не считая единицы и самого числа. Напишите программу, которая перебирает целые числа, большие $500\,000$, в порядке возрастания и ищет…
- 1
Перебираем числа, начиная с $500001$, и для каждого вычисляем сумму его собственных делителей.
- 2
Для числа $500022 = 2 \cdot 3^2 \cdot 27779$ сумма всех делителей равна $3 \cdot 13 \cdot 27780 = 1083420$, поэтому $R = 1083420 - 1 - 500022 = 583397$.
Ещё 1 шаг — в полном решении
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 2, 6, 4, 7, 3, 9, 1, 8, 0, 5 соответственно, то есть $A[0]=2$, $A[1]=6$ и так далее…
- 1
В начале $c=0$, а $A[9]=5$. При $i=0$ значение $A[0]=2$ не больше 5, поэтому обмена нет.
- 2
При $i=1$: $A[1]=6>5$. Увеличиваем $c$ до 1 и меняем местами 6 и 5. Теперь $A[9]=6$.
Ещё 3 шага — в полном решении