Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Используем две обработки массива: сначала находим минимальный элемент, делящийся на 3, затем изменяем элементы, делящиеся на 3, и выводим результат.
- 2
Например, на Python фрагмент программы может выглядеть так: j = 10001 for i in range(0, n): if a[i] % 3 == 0 and a[i] < j: j = a[i] for i in range(0, n): if a[i] % 3 == 0: a[i] += j print(a[i])
Ещё 1 қадам — толық шешімде
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Используем переменную j для подсчёта элементов, которые меньше 100 и не кратны 5.$$a[i] < 100 \text{ и } a[i] \bmod 5 \ne 0$$
- 2
После подсчёта повторно просматриваем массив. Каждый подходящий элемент заменяем значением j.
Ещё 1 қадам — толық шешімде
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$. Сначала строится двоичная запись числа $N$. Если сумма цифр в двоичной записи чётная, к записи справа…
- 1
Для чисел от $1$ до $15$ двоичная запись содержит не более четырёх разрядов, поэтому после обработки результат не превышает $22$ и не может быть больше 50.
- 2
Рассмотрим следующие числа. Для $N=16$: $16_{10}=10000_2$, сумма цифр равна 1, поэтому получаем $110001_2=49_{10}$.$$10000_2 \to 100001_2 \to 110001_2=49_{10}$$
Ещё 3 қадам — толық шешімде
Запишите число, которое будет напечатано в результате выполнения программы. Во всех представленных вариантах программы используется целочисленное деление.
- 1
В начале работы программы $s=250$, $n=1$. На каждой итерации выполняется целочисленное деление $s$ на $3$ и умножение $n$ на $2$.$$s \leftarrow \lfloor s/3 \rfloor,\quad n \leftarrow 2n$$
- 2
Последовательно вычисляем значения переменной $s$:$$250 \to 83 \to 27 \to 9 \to 3 \to 1 \to 0$$
Ещё 1 қадам — толық шешімде
Пусть $M$ — сумма минимального и максимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение $M$ считается равным нулю. Напишите…
- 1
Последовательно перебираем целые числа, большие $5\,700\,000$, и для каждого определяем минимальный и максимальный простые делители, не считая самого числа.
- 2
Для каждого числа вычисляем $M$ как сумму найденных делителей и проверяем условия $M > 70\,000$ и $M = k^2$ для некоторого натурального $k$.$$M=p_{\min}+p_{\max}=k^2$$
Ещё 1 қадам — толық шешімде
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: символ «?» означает ровно одну произвольную цифру; символ «*» означает любую последовательность…
- 1
Так как число начинается с цифры 3 и не превышает $10^8$, длина последовательности, задаваемой символом «*», может быть от 0 до 2 цифр.
- 2
Перебираем цифры вместо «?» и последовательности цифр вместо «*», проверяя соответствие маске и делимость на 3023.
Ещё 1 қадам — толық шешімде
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 9, 8, 4, 7, 3, 2, 1, 5, 0, 6 соответственно, то есть $A[0]=9$, $A[1]=8$ и т. д…
- 1
Изначально $A[9]=6$, а $c=0$. Проверяем элементы с индексами от 0 до 8.
- 2
При $i=0$ и $i=1$ элементы 9 и 8 не меньше 6, поэтому обмена нет.
Ещё 4 қадам — толық шешімде
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 6, 8, 4, 3, 7, 9, 5, 2, 0, 1 соответственно, то есть $A[0]=6$, $A[1]=8$ и так далее…
- 1
Изначально $A[0]=6$ и $c=0$. При $i=1$ значение $A[1]=8$, поэтому условие не выполняется.
- 2
При $i=2$ имеем $A[2]=4<6$. Увеличиваем $c$ до 1 и меняем местами $A[2]$ и $A[0]$. Теперь $A[0]=4$.$$c=1$$
Ещё 4 қадам — толық шешімде
Пусть $M$ — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение $M$ равным нулю. Напишите…
- 1
Для каждого целого числа, начиная с $452022$, перебираем возможные делители до квадратного корня числа.$$1 < d \leq \sqrt{n}$$
- 2
Для составного числа минимальным нетривиальным делителем является первый найденный делитель $d$, а максимальным — парный делитель $n / d$. Поэтому $M = d + n/d$.
Ещё 2 қадам — толық шешімде
Запишите число, которое будет напечатано в результате выполнения следующей программы. Для удобства программа представлена на пяти языках программирования.
- 1
Изначально $s = 0$, $n = 86$. Условие цикла $s < 71$ выполняется.
- 2
На каждой итерации значение $s$ увеличивается на 10. Чтобы получить значение не меньше 71, цикл выполнится 8 раз: $s = 8 \cdot 10 = 80$.
Ещё 2 қадам — толық шешімде
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом. Строится троичная запись числа $N$. Если число $N$ делится на $3$, к этой записи…
- 1
Перебираем натуральные значения $N$ по возрастанию и для каждого выполняем описанный алгоритм.
- 2
Для первого значения, при котором полученное число $R$ достигает требуемого порога, результат алгоритма не меньше $86$.$$R \geq 86$$
Ещё 1 қадам — толық шешімде
По каналу связи передаётся последовательность целых неотрицательных чисел — показания прибора, полученные с интервалом в 1 мин в течение $T$ мин. Прибор измеряет количество атмосферных осадков…
- 1
Пусть элементы последовательности имеют индексы от $0$ до $N-1$. Для элемента $a_i$ допустимы элементы $a_j$, для которых $i-j \geq K$, то есть $j \leq i-K$.$$i-j \geq K$$
- 2
При последовательном просмотре элементов поддерживаем максимум среди уже доступных элементов. Перед обработкой $a_i$ добавляем в этот максимум элемент $a_{i-K}$.$$m_i = \max(m_{i-1}, a_{i-K})$$
Ещё 2 қадам — толық шешімде
Напишите программу, которая перебирает целые числа, большие 2018974447, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не обязательно…
- 1
Сформируем простые числа, в десятичной записи которых последовательность 43 встречается ровно один раз.
- 2
Для каждой пары таких простых чисел вычислим произведение и оставим произведения, превышающие 2018974447.$$n=p\cdot q>2018974447$$
Ещё 1 қадам — толық шешімде
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Для поиска минимума достаточно просмотреть все элементы массива и рассматривать только те, которые делятся на 3 без остатка.$$a[i] \bmod 3 = 0$$
- 2
Переменную `j` можно изначально установить равной 10001 — числу, большему любого возможного элемента массива. При нахождении подходящего элемента меньшего значения обновляем минимум.$$j = \min\{a[i] \mid a[i] \bmod 3 = 0\}$$
Ещё 3 қадам — толық шешімде
Напишите программу, которая перебирает целые числа, бо́льшие 500 000, в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру 9 и не равный ни…
- 1
Перебираем числа, начиная с 500001, и для каждого проверяем делители от 2 до квадратного корня из числа. Подходящими считаем делители, меньшие самого числа, не равные 9 и оканчивающиеся цифрой 9.
- 2
Первое найденное число — 500004: оно делится на 19, а 19 — минимальный подходящий делитель.
Ещё 1 қадам — толық шешімде
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом. Сначала записывается двоичная запись числа $N$. Если сумма цифр в этой записи чётная…
- 1
Последовательно проверим натуральные числа, начиная с $N=1$. Для каждого числа применяем правило преобразования.
- 2
Для первых значений получаются результаты: $R(1)=3$, $R(2)=4$, $R(3)=4$, $R(4)=13$, $R(5)=8$, $R(6)=8$, $R(7)=15$.
Ещё 3 қадам — толық шешімде
Запишите число, которое будет напечатано в результате выполнения следующей программы.
- 1
На каждой итерации значение $s$ уменьшается на 15. Определим количество итераций до первого неположительного значения.$$301 - 15k \leq 0$$
- 2
Минимальное целое $k$, удовлетворяющее неравенству, равно 21: после 20 итераций $s = 1$, после 21-й итерации $s = -14$.
Ещё 1 қадам — толық шешімде
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: символ «?» означает ровно одну произвольную цифру; символ «*» означает любую последовательность…
- 1
Маска без цифр вместо «*» задаёт семизначные числа вида $12ab156$. Проверка всех значений $a$ и $b$ даёт одно подходящее число.$$12206156 = 317 \cdot 3868$$
- 2
Если вместо «*» поставить одну цифру $c$, получаются восьмизначные числа вида $12ab1c56$. Перебор цифр $a$, $b$ и $c$ с проверкой делимости даёт три числа.$$12511356 = 317 \cdot 39468$$
Ещё 1 қадам — толық шешімде
Опишите на русском языке или одном из языков программирования алгоритм подсчёта суммы произведений последовательных пар элементов в целочисленном массиве из 30 элементов. Нужно сосчитать сумму…
- 1
Обозначим элементы массива индексами от 0 до 29 и введём переменную S для накопления суммы.$$S = 0$$
- 2
Перебираем первый индекс каждой пары: 0, 2, 4, ..., 28. Второй индекс пары равен $i+1$.$$i = 0, 2, 4, \ldots, 28$$
Ещё 2 қадам — толық шешімде
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: символ «?» означает ровно одну произвольную цифру; символ «*» означает любую последовательность…
- 1
Числа, кратные 1927 и не превышающие $10^8$, имеют вид $1927k$, где $1 \leq k \leq 51892$.$$k \leq \left\lfloor \dfrac{10^8}{1927} \right\rfloor = 51892$$
- 2
Для каждого значения $k$ вычисляется число $N=1927k$. Затем проверяется, что запись числа соответствует маске 1?3*4?9.
Ещё 1 қадам — толық шешімде