В начало страницы

Вариант «ЕГЭ — 2018. Досрочная волна. Вариант 1» (ДОСР-2018)

Список тем

1, 1, Д1, Д1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, Д7, Д7, 8, 8, 11, 11, 12, 12, Д12, Д12, 13, 13, 14, 14, 15, 15, 16, 16, Д17, Д17, Д19, Д19, Д21, Д21, 22, 22, 23, 23, Д23, Д23, Д24 C1, Д24 C1, Д25 C2, Д25 C2, Д26 C3, Д26 C3, Д27 C4, Д27 C4

Задания

Задание 1.1 (тема 1, №15619)

Варианты

Текст задания

На рисунке справа схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о дорогах между населенными пунктами (звездочка означает, что дорога между соответствующими городами есть).

 

123456
1* *
2* * *
3* *
4** * * *
5* *
6* *

 

Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите номера населенных пунктов A и G в таблице. В ответе запишите числа в порядке возрастания без разделителей.

Задание 1.2 (тема 1, №15843)

Варианты

Текст задания

На рисунке слева изображена схема дорог Н-ского района, в таблице звёздочкой обозначено наличие дороги из одного населённого пункта в другой. Отсутствие звёздочки означает, что такой дороги нет.

 

1234567
1***
2***
3******
4**
5**
6***
7***

 

Каждому населённому пункту на схеме соответствует его номер в таблице, но неизвестно, какой именно номер. Определите, какие номера населённых пунктов в таблице могут соответствовать населённым пунктам A и G на схеме. В ответе запишите эти два номера в возрастающем порядке без пробелов и знаков препинания.

Задание 2.1 (тема 2, №15618)

Варианты

Текст задания

Логическая функция F задаётся выражением (x ∧ ¬y) \/ (yz) \/ ¬w. На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F ложна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z. Все строки в представленном фрагменте разные.

 

Перем.1Перем.2Перем.3Перем.4
????????????
0
100
100

 

В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (без разделителей).

Задание 2.2 (тема 2, №15842)

Варианты

Текст задания

Логическая функция F задаётся выражением (x ∧ ¬y) ∨ (yz ) ∨ w.

Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.

Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.

 

Переменная 1Переменная 2Переменная 3Переменная 4Функция
????????????F
10
10000
1100

 

В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

Пример. Пусть задано выражение xy, зависящее от двух переменных x и y, и фрагмент таблицы истинности:

 

Переменная 1Переменная 1Функция
??????F
010

 

Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.

Задание 3.1 (тема 3, №15620)

Варианты

Текст задания

В фрагменте базы данных представлены сведения о родственных отношениях. На основании приведённых данных определите количество человек, у которых есть родной брат с разницей не более 5 лет.

 

 

Таблица 1
IDФамилия_И. О.ПолГод рождения
2053Сухорук К.К.М1975
2065Лопухова В.А.Ж1980
2086Зарецкий А.А.М1972
2097Сухорук Е.К.Ж2004
2118Ларина О.Д.Ж1996
2124Сухорук И.К.М2001
2135Кольцова Т.Х.Ж1995
2156Рац А.П.М1993
2181Сухорук Т.Н.М2015
2203Сухорук П.И.Ж2018
2052Гнатюк О.А.М1952

 

Таблица 2
ID_РодителяID_Ребенка
20652097
20532118
20522065
20522086
20532135
20522053
20652124
20862156
21562181
21562203

Задание 3.2 (тема 3, №15844)

Варианты

Текст задания

Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите на основании приведённых данных, сколько жителей родились в том же городе, что и хотя бы один из их дедушек. При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц.

 

Таблица 1
IDФамилия_И. О.ПолМесто рождения
64Келдыш С.М.МЛипецк
66Келдыш О.Н.ЖБрянск
67Келдыш М.И.МЛипецк
68Келдыш Н.С.ЖЛипецк
69Дейнеко Н.А.ЖБрянск
70Сиротенко В.Н.МТула
72Сиротенко Д.В.МТула
75Сиротенко Н.П.МТула
77Мелконян А.А.МТамбов
81Мелконян И.Н.ЖТамбов
82Лурье А.В.ЖТула
86Хитрово Н.И.МБрянск
88Хитрово Т.Н.ЖТула
89Гурвич З.И.ЖТула

Таблица 2
ID_РодителяID_Ребенка
6664
6764
8666
8169
7570
8970
7072
8872
8177
7581
8981
7082
8882
8688

Задание 4.1 (тема 4, №15621)

Варианты

Текст задания

Для передачи данных используется двоичный код. Сообщение содержит только буквы А, Б, В или Г, для букв А, Б и В используются следующие кодовые слова:

A – 0, Б – 101, В – 111.

Найдите кодовое слово минимальной длины для Г при котором сохраняется прямое условие Фано. Если таких кодовых слов несколько, укажите кодовое слово с минимальным двоичным значением.

Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.

Задание 4.2 (тема 4, №15845)

Варианты

Текст задания

По каналу связи передаются сообщения, содержащие только четыре буквы: А, Б, В, Г; для передачи используется двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В используются такие кодовые слова: А — 0; Б — 110; В — 101.

Укажите кратчайшее кодовое слово для буквы Г, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наибольшим числовым значением.

Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.

Задание 5.1 (тема 5, №15622)

Варианты

Текст задания

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится двоичная запись числа N.

2. К этой записи дописываются справа ещё два разряда по следующему правилу: складываются все цифры двоичной записи, если

а) сумма нечетная к числу дописывается 11,

б) сумма четная, дописывается 00.

Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите такое наименьшее число R, которое превышает 114 и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе счисления.

Задание 5.2 (тема 5, №15846)

Варианты

Текст задания

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число следующим образом.

1. Строится двоичная запись числа N.

2. К этой записи дописываются справа ещё два разряда по следующему правилу: если N чётное, в конец числа (справа) дописываются два нуля, в противном случае справа дописываются две единицы. Например, двоичная запись 1001 числа 9 будет преобразована в 100111.

Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью числа – результата работы данного алгоритма.

Укажите минимальное число N, для которого результат работы алгоритма будет больше 115. В ответе это число запишите в десятичной системе счисления.

Задание 6.1 (тема 6, №15624)

Варианты

Текст задания

Запишите число, которое будет напечатано в результате выполнения следующей программы. Для Вашего удобства программа представлена на пяти языках программирования.

 

БейсикPython

DIM S, N AS INTEGER

S = 0

N = 170

WHILE S + N < 325

    S = S + 25

    N = N - 5

WEND

PRINT S

s = 0

n = 170

while s + n < 325:

    s = s + 25

    n = n - 5

print(s)

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

var s, n: integer;

begin

s := 0;

n := 170;

while s + n < 325 do

begin

    s := s + 25;

    n := n - 5

end;

writeln(s)

end.

алг

нач

    цел n, s

    s := 0

    n := 170

    нц пока s + n < 325

        s := s + 25

        n := n - 5

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main() {

int s = 0, n = 170;

while (s + n < 325) {

    s = s + 25;

    n = n - 5;

}

cout << s << endl;

return 0;

}

 

Задание 6.2 (тема 6, №15848)

Варианты

Текст задания

Запишите число, которое будет напечатано в результате выполнения следующей программы. Для Вашего удобства программа представлена на пяти языках программирования.

 

БейсикPython

 DIM S, N AS INTEGER

 S = 150

 N = 0

 WHILE S + N < 300

     S = S − 5

     N = N + 25

 WEND

 PRINT N

s = 150

n = 0

while s + n < 300:

    s = s − 5

    n = n + 25

print(n)

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

var s, n: integer;

begin

s := 150;

n := 0;

while s + n < 300 do

begin

    s := s − 5;

    n := n + 25

end;

writeln(n)

end.

алг

нач

    цел n, s

    s := 150

    n := 0

    нц пока s + n < 300

        s := s − 5

        n := n + 25

    кц

    вывод n

кон

Си++

#include <iostream>

using namespace std;

int main() {

int s = 150, n = 0;

while (s + n < 300) {

    s = s − 5;

    n = n + 25;

}

cout << n << endl;

return 0;

}

 

Задание 7.1 (тема 7, №15625)

Варианты

Текст задания

Графический файл с разрешением 1024х600 на жестком диске занимает не более 120 КБайт. Определите максимальное количество цветов, которое может использоваться для кодирования данного изображения.

Задание 7.2 (тема 7, №15849)

Варианты

Текст задания

Автоматическая камера производит растровые изображения размером 600 на 1000 пикселей. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. Объём файла с изображением не может превышать 250 Кбайт без учёта размера заголовка файла. Какое максимальное количество цветов можно использовать в палитре?

Задание Д7.1 (тема Д7, №15623)

Варианты

Текст задания

Дан фрагмент электронной таблицы. Из ячейки D2 в ячейку E1 была скопирована формула. При копировании адреса ячеек в формуле автоматически изменились. Каким стало числовое значение формулы в ячейке E1?

 

АBCDE
11101001000
2220200=$B2+C$320000
3330300300030000
4440400400040000

 

Примечание: знак $ обозначает абсолютную адресацию.

Задание Д7.2 (тема Д7, №15847)

Варианты

Текст задания

Дан фрагмент электронной таблицы. Из ячейки E4 в ячейку D3 была скопирована формула. При копировании адреса ячеек в формуле автоматически изменились. Каким стало числовое значение формулы в ячейке D3?

 

АBCDE
1405400704
2306300603
32072002
410810040=$B3*C$2

 

Примечание. Знак $ обозначает абсолютную адресацию.

Задание 8.1 (тема 8, №15626)

Варианты

Текст задания

Все 6-буквенные слова, составленные из букв А, О, У, записаны в обратном алфавитном порядке. Вот начало списка:

1. УУУУУУ

2. УУУУУО

3. УУУУУА

4. УУУУОУ

……

На каком месте от начала списка находится слово ОУУУОО.

Задание 8.2 (тема 8, №15850)

Варианты

Текст задания

Все 4-буквенные слова, составленные из букв А, И, О, У, Э, записаны в алфавитном порядке и пронумерованы.

Вот начало списка:

1. АААА

2. АААИ

3. АААО

4. АААУ

...

Под каким номером стоит ИААЭ?

Задание 11.1 (тема 11, №15629)

Варианты

Текст задания

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 10 символов и содержащий только символы из 26-символьного латинского алфавита, используются только прописные буквы. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего отведено 14 байт на одного пользователя. Определите объём памяти (в байтах), необходимый для хранения сведений о 5 пользователях.

Задание 11.2 (тема 11, №15853)

Варианты

Текст задания

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 10 символов и содержащий только символы из 26-символьного набора прописных латинских букв. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт; это число одно и то же для всех пользователей. Для хранения сведений о 50 пользователях потребовалось 1000 байт. Сколько байт выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байт.

Задание 12.1 (тема 12, №15630)

Варианты

Текст задания

Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

 

1. заменить (v, w)

2. нашлось (v)

 

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w, вторая проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из одной единицы и 75 стоящих справа от нее нулей? В ответе запишите сколько нулей будет в конечной строке.

 

НАЧАЛО

ПОКА нашлось (10) ИЛИ нашлось (1)

    ЕСЛИ нашлось (10)

        ТО заменить (10, 001)

        ИНАЧЕ заменить (1, 00)

    КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Задание 12.2 (тема 12, №15854)

Варианты

Текст задания

Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить(v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды

заменить(111, 27)

преобразует строку 05111150 в строку 0527150.

Если в строке нет вхождений цепочки v, то выполнение команды заменить(v, w) не меняет эту строку.

Б) нашлось(v)

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Цикл

    ПОКА условие

        последовательность команд

    КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

    ЕСЛИ условие

        ТО команда1

    КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно).

В конструкции

    ЕСЛИ условие

        ТО команда1

        ИНАЧЕ команда2

    КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 

Определите количество нулей в строке, получившейся в результате применения приведённой ниже программы к входной строке, состоящей из единицы, за которой следуют 80 нулей подряд. В ответе запишите только количество нулей в получившейся строке.

 

НАЧАЛО

ПОКА нашлось (10) ИЛИ нашлось (1)

    ЕСЛИ нашлось (10)

        ТО заменить (10, 001)

    ИНАЧЕ

        ЕСЛИ нашлось(1)

             ТО заменить (1, 000)

        КОНЕЦ ЕСЛИ

    КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Задание Д12.1 (тема Д12, №15628)

Варианты

Текст задания

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске. Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 153.82.140.123 адрес сети равен 153.82.136.0. Определите третий слева октет маски подсети. Ответ запишите в виде десятичного числа.

Задание Д12.2 (тема Д12, №15852)

Варианты

Текст задания

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

 

Для узла с IP-адресом 111.81.88.27 адрес сети равен 111.81.80.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.

Задание 13.1 (тема 13, №15631)

Варианты

Текст задания

На рисунке представлена схема дорог. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города А в город К, проходящих через город Г и НЕ проходящих через город З?

Задание 13.2 (тема 13, №15855)

Варианты

Текст задания

На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.

Сколько существует различных путей из города А в город М, проходящих через город Ж?

Задание 15.1 (тема 15, №15634)

Варианты

Текст задания

Для какого наименьшего целого неотрицательного числа А выражение

 

(y + 2x < A) ∨ (x > 30) ∨ (y > 20)

 

тождественно истинно, то есть принимает значение 1 при любых целых неотрицательных x и y?

Задание 15.2 (тема 15, №15858)

Варианты

Текст задания

Для какого наименьшего целого неотрицательного числа А выражение

 

(y + 2x < A) ∨ (x > 30) ∨ (y > 20)

 

тождественно истинно, то есть принимает значение 1 при любых целых неотрицательных x и y?

Задание 16.1 (тема 16, №15627)

Варианты

Текст задания

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

 

БейсикPython

DECLARE SUB F(n)

SUB F (n)

    IF n > 0 THEN

        F(n \ 4)

        PRINT n

        F(n - 1)

    END IF

END SUB

def F(n):

    if n > 0:

        F(n // 4)

        print(n)

        F (n - 1)

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

procedure F(n: integer);

begin

    if n > 0 then

    begin

        F(n div 4);

        write(n);

        F(n - 1);

    end

end;

алг F(цел n)

нач

    если n > 0 то

        F(div(n, 4))

        вывод n

        F(n - 1)

    все

кон

Си++

void F(int n){

    if (n > 0){

        F(n / 4);

        std::cout << n;

        F(n - 1);

    }

}

 

 

В качестве ответа укажите последовательность цифр, которая будет напечатана на экране в результате вызова F(5).

Задание 16.2 (тема 16, №15851)

Варианты

Текст задания

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

 

БейсикPython

SUB F (n)

    IF n > 0 THEN

        F(n − 1)

        PRINT n

        F(n \ 4)

    END IF

END SUB

def F(n):

    if n > 0:

        F(n − 1)

        print(n)

        F (n // 4)

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

procedure F(n: integer);

begin

    if n > 0 then

    begin

        F(n − 1);

        write(n);

        F(n div 4);

    end

end;

алг F(цел n)

нач

    если n > 0 то

        F(n − 1)

        вывод n

        F(div(n, 4))

    все

кон

Си++

void F(int n){

    if (n > 0){

        F(n − 1)

        std::cout << n;

        F(n / 4);

    }

}

 

 

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(5). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

Задание Д17.1 (тема Д17, №15633)

Варианты

Текст задания

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.

 

ЗапросНайдено страниц
(в тысячах)
Вебинар50
Информатика80
Ум100
Вебинар|Информатика110
Информатика & Ум30
Вебинар & Информатика & Ум5
Вебинар | Информатика | Ум165

 

Какое количество страниц (в тысячах) будет найдено по запросу Вебинар & Ум?

Задание Д17.2 (тема Д17, №15857)

Варианты

Текст задания

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.

 

ЗапросНайдено страниц
(в сотнях тысяч)
Масло48
Двигатель28
Подсолнечник52
Масло|Двигатель|Подсолнечник83
Масло & Подсолнечник19
Подсолнечник & Двигатель0

 

Какое количество страниц (в сотнях тысяч) будет найдено по запросу Двигатель & Масло?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

Задание Д19.1 (тема Д19, №15635)

Варианты

Текст задания

Ниже представлен фрагмент программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10. Значения элементов равны 5; 1; 6; 7; 8; 8; 7; 7; 6; 9; 5 соответственно, т. е. A[0]=5; A[1]=1 и т. д. Определите значение переменной s после выполнения следующего фрагмента программы.

 

БейсикPython

S = 0

FOR i = 0 TO 9

    S = S + A(i+1) – A(i);

NEXT i

s = 0

for i in range(10):

     s = s + A[i+1] - A[i]

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

s := 0;

for i:=0 to 9 do begin

    s := s + A[i+1] - A[i]

end;

s := 0

нц для i от 0 до 9

     s := s + A[i+1] - A[i]

     все

кц

Си++

s = 0;

for (i=0; i<10; i++)

      s = s + A[i+1] - A[i];

 

Задание Д19.2 (тема Д19, №15859)

Варианты

Текст задания

В программе используется одномерный целочисленный массив A с индексами от 0 до 10. Значения элементов равны 3, 0, 9, 7, 8, 1, 5, 10, 2, 6, 4 соответственно, т.е. A[0] = 3, A[1] = 0 и т.д.

Определите значение переменной c после выполнения следующего фрагмента этой программы, записанного ниже на пяти языках программирования.

 

БейсикPython

с = 0

FOR i = 1 TO 10

    IF A(i − 1) > A(i) THEN

        c = c + 1

        t = A(i)

        A(i) = A(i − 1)

        A(i − 1) = t

    END IF

NEXT i

c = 0

for i in range(1, 11):

    if A[i − 1] > A[i]:

        c = c + 1

        t = A[i]

        A[i] = A[i − 1]

        A[i − 1] = t

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

c := 0;

for i:=1 to 10 do

    if A[i − 1] > A[i] then

    begin

        c := c + 1;

        t := A[i];

        A[i] = A[i − 1];

        A[i − 1] = t;

    end;

c := 0

нц для i от 1 до 10

    если A[i − 1] > A[i] то

        c := c + 1

        t := A[i]

        A[i] := A[i − 1]

        A[i − 1] := t

     все

кц

Си++

c = 0;

for (i=1; i<11; i++)

      if (A[i − 1] > A[i])

      {

        c++;

        t = A[i];

        A[i] = A[i − 1];

        A[i − 1] = t;

      }

 

Задание Д21.1 (тема Д21, №15637)

Варианты

Текст задания

Какое значение будет выведено на экран после выполнения данной программы?

 

БейсикPython

DIM A, B, T, M, R AS INTEGER

    A = -20: B = 20

    M = A: R = F(A)

    FOR T = A TO B

        IF F(T) > R THEN

            M = T

            R = F(T)

        END IF

    NEXT T

    PRINT M+24

    FUNCTION F(x)

        F := 2*(x-19)*(x-19)+7

    END FUNCTION

def f(x):

    return 2*(x-19)*(x-19)+7

a = -20

b = 20

M = a

R = f(a)

for t in range(a, b+1):

    if (f(t) > R):

        M = t

        R = f(t);

print(M+24)

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

var a,b,t,M,R :integer;

Function F(x: integer):integer;

    begin

        F := 2*(x-19)*(x-19)+7;

    end;

BEGIN

     a := -20; b := 20;

     M := a; R := F(a);

     for t := a to b do begin

         if (F(t) > R) then begin

             M := t;

            R := F(t);

        end;

    end;

write(M+24);

END.

алг

нач

    цел a, b, t, M, R

    a:=-20; b:=20

    M:=a; R:=F(a)

    нц для t от a до b

         если F(t) > R то

            то

                 M:=t; R:=F(t)

        все

    кц

    вывод M+24

кон

алг цел F(цел x)

нач

    знач :=2*(x-19)*(x-19)+7;

кон

Си++

#include <iostream>

using namespace std;

 

int F(int x)

{

    return 2*(x-19)*(x-19)+7

}

int main()

{

    int a, b, t, M, R;

    a = -20; b = 20;

    M = a; R = F(a);

    for (t=a; t<=b; t++){

        if (F(t) > R) {

            M = t; R = F(t);

        }

    }

    cout << (M+24) << endl;

}

 

Задание Д21.2 (тема Д21, №15861)

Варианты

Текст задания

Определите число различных значений входной переменной k, при которых программа выдаёт тот же ответ, что и при входном значении k = 8. Значение k = 8 также включается в подсчёт различных значений k. Для Вашего удобства программа приведена на пяти языках программирования.

 

БейсикPython

    DIM K, I AS LONG

    INPUT K

    I = 12

    WHILE I > 0 AND F(I) > K

        I = I − 1

    WEND

    PRINT I

 

    FUNCTION F(N)

        F = N * N * N

    END FUNCTION

def F(n):

    return n * n * n

 

k = int(input())

i = 12

while (i > 0 and F(i) > k):

    i = i − 1

print (i)

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

var k, i :longint;

function F(n: longint) : longint;

begin

    F := n * n * n;

end;

 

begin

     readln(k);

     i := 12;

    while (i > 0) and (F(i) > k) do

         i := i − 1;

    writeln(i);

end.

алг

нач

    цел i, k

    ввод k

    i := 12

    нц пока i > 0 и f(i) > k

        i := i − 1

    кц

    вывод i

кон

алк цел f(цел n)

нач

    знач := n * n * n

кон

Си++

#include <iostream>

using namespace std;

 

long F(long n)

{

    return n * n * n

}

 

int main()

{

    int k, i;

    cin >> k;

    i = 12;

    while (i > 0 && F(i) > k)

        i−−

    cout << i;

return 0;

}

 

Задание 22.1 (тема 22, №15636)

Варианты

Текст задания

Укажите наибольшее десятичное число, при вводе которого на экране сначала напечатается 3, а затем 6.

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

L = L + 1

IF X MOD 2 <> 0 THEN

    M = M + (X MOD 8)

ENDIF

X = X \ 8

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0 :

    L = L+1

    if (x % 2) != 0:

        M = M + x % 8

    x = x // 8

print(L)

print(M)

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

var x, L, M: integer;

begin

    readln(x);

    L:=0; M:=0;

    while x > 0 do begin

         L:=L + 1;

        if (x mod 2) <> 0 then

             M:= M + x mod 8;

        x:= x div 8;

    end;

    writeln(L); write(M);

end.

алг

нач

     цел x, L, M

     ввод x

     L := 0

     M := 0

    нц пока x > 0

        L := L + 1

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

            то

             M:= M + mod (x,8);

        x := div(x,8)

        все

     кц

     вывод L, нс, M

кон

Си++

#include <iostream>

using namespace std;

 

int main(void) {

    int L, M, x;

    cin >> x;

     L = 0; M = 0;

    while (x > 0) {

         L = L + 1;

        if (x % 2 != 0) {

             M = M + x % 8;

        }

        x = x / 8;

    }

     cout << L << “ “ << M;

}

 

Задание 22.2 (тема 22, №15860)

Варианты

Текст задания

Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное десятичное число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 14, а потом 3.

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

    M = M + 1

    IF X MOD 2 <> 0 THEN

        L = L + X MOD 8

    ENDIF

    X = X \ 8

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0 :

    M = M+1

     if (x % 2) != 0:

         L = L + x % 8

     x = x // 8

print(L)

print(M)

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

var x, L, M: integer;

begin

    readln(x);

    L:=0; M:=0;

    while x > 0 do begin

        M:=M + 1;

        if (x mod 2) <> 0 then

            L:= L + x mod 8;

        x:= x div 8;

    end;

    writeln(L); write(M);

end.

алг

нач

     цел x, L, M

     ввод x

     L := 0

     M := 0

    нц пока x > 0

        M := M + 1

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

            то

             L:= L + mod (x,8);

        x := div(x,8)

        все

     кц

     вывод L, нс, M

кон

Си++

#include <iostream>

using namespace std;

 

int main(void) {

    int L, M, x;

    cin >> x;

     L = 0; M = 0;

    while (x > 0) {

         M = M + 1;

        if (x % 2 != 0) {

             L = L + x % 8;

        }

        x = x / 8;

    }

     cout << L << “ “ << M;

}

 

Задание 23.1 (тема 23, №15638)

Варианты

Текст задания

Исполнитель Калькулятор преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1

2. Умножить на 2

Программа для исполнителя Калькулятор – это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является число 21, при этом траектория вычислений содержит число 10 и не содержит число 17?

Задание 23.2 (тема 23, №15862)

Варианты

Текст задания

Исполнитель Вычислитель преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1.

2. Умножить на 2.

Первая команда увеличивает число на экране на 1, вторая умножает его на 2.

Программа для Вычислителя — это последовательность команд.

Сколько существует программ, для которых при исходном числе 1 результатом является число 21 и при этом траектория вычислений содержит число 10 и не содержит числа 16?

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.

Задание Д23.1 (тема Д23, №15639)

Варианты

Текст задания

Сколько существует различных наборов значений логических переменных x1, x2, ... x8, которые удовлетворяют всем перечисленным ниже условиям?

 

(x1 \/ ¬x2) → (x3 \/ ¬x4) = 1

(x3 \/ ¬x4) → (x5 \/ ¬x6) = 1

(x5 \/ ¬x6) → (x7 \/ ¬x8) = 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ...x8 при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

Задание Д23.2 (тема Д23, №15863)

Варианты

Текст задания

Сколько существует различных наборов значений логических переменных x1, x2, … x7, y1, y2, … y7, которые удовлетворяют всем перечисленным ниже условиям?

 

(x1x2) ∧ (¬x1 ∨ ¬x2) ∧ (¬x1y1) = 1

(x2x3) ∧ (¬x2 ∨ ¬x3) ∧ (¬x2y2) = 1

...

(x6x7) ∧ (¬x6 ∨ ¬x7) ∧ (¬x6y6) = 1

x7y7) = 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, … x7, y1, y2, … y7, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

Задание Д24 C1.1 (тема Д24 C1, №15640)

Варианты

Текст задания

На вход программы поступают 4 неотрицательных целых числа, не превышающие 1000, среди которых могут быть одинаковые. Нужно написать программу, которая выводит количество чисел, не кратных 3, и максимальное из этих чисел. Если среди входных данных нет чисел, не кратных трёх, программа должна вывести слово «NO». Программист написал программу неправильно.

 

БейсикPython

COUNT = 0

MAXIMUM = 1000

FOR I = 1 TO 4

    INPUT X

    IF X MOD 3 <> 0 THEN

        COUNT = COUNT + 1

        IF X > MAXIMUM THEN

            MAXIMUM = I

        END IF

    END IF

NEXT I

IF COUNT > THEN

    PRINT COUNT

    PRINT MAXIMUM

ELSE

    PRINT “NO”

END IF

count = 0

maximum = 1000

for i in range(4):

    x = int(input())

    if x % 3 != 0:

        count = count + 1

        if x > maximum:

            maximum = i

if count > 0:

    print(count)

    print(maximum)

else:

    print("NO")

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

var i, x: integer;

var maximum, count: integer;

begin

     count := 0;

    maximum := 1000;

    for i:=1 to 4 do begin

         read( x );

         if x mod 3 <> 0 then begin

            count := count + 1;

             if x > maximum then

                 maximum := i;

            end;

         end;

     if count > 0 then begin

        writeln(count);

        writeln(maximum);

     end

    else

        writeln('NO');

end.

алг

нач

цел i, x

цел maximum, count

count := 0

maximum := 1000

нц для i от 1 до 4

ввод x

если mod(x, 3) <> 0 то

count := count + 1

если x > maximum то

maximum := i

все

все

кц

если count > 0 то

вывод count, нс

вывод maximum

иначе

вывод "NO"

все

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

    int i, x, maximum;

    int count = 0;

    maximum = 1000;

    for (i=1; i<= 4; i++) {

        cin >> x;

        if ( x % 3 != 0 ) {

             count = count + 1;

             if ( x > maximum ) maximum = i;

            }

        }

     if ( count > 0 ) {

        cout << count << endl;

        cout << maximum;

    }

    else

        cout << "NO";

     return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 7 15 8 21.

2. Приведите пример такой последовательности, содержащей число, кратное 3, при вводе которой программа выведет правильный ответ.

3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

Задание Д24 C1.2 (тема Д24 C1, №15864)

Варианты

Текст задания

На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество делящихся нацело на 4 чисел в исходной последовательности и максимальное делящееся нацело на 4 число. Если делящихся нацело на 4 чисел нет, требуется на экран вывести «NO». Известно, что вводимые числа не превышают 1000. Программист написал программу неправильно. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

CONST n = 4

count = 0

maximum = 1000

FOR I = 1 TO n

    INPUT x

    IF X MOD 4 = 0 THEN

        count = count + 1

        IF x < maximum THEN

            maximum = x

        END IF

    END IF

NEXT I

IF count > 0 THEN

    PRINT count

    PRINT maximum

ELSE

    PRINT “NO”

END IF

n = 4

count = 0

maximum = 1000

for i in range(1, n + 1):

    x = int(input())

    if x % 4 == 0:

        count += 1

        if x < maximum:

            maximum = x

if count > 0:

    print(count)

    print(maximum)

else:

    print("NO")

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

const n = 4;

var i, x: integer;

var maximum, count: integer;

begin

     count := 0;

    maximum := 1000;

    for i:=1 to n do begin

         read(x);

         if x mod 4 = 0 then begin

            count := count + 1;

             if x < maximum then

                 maximum := x;

            end;

         end;

     if count > 0 then begin

        writeln(count);

        writeln(maximum);

    end

    else

        writeln('NO');

end.

алг

нач

    цел n = 4

    цел i, x

    цел maximum, count

    count := 0

    maximum := 1000

    нц для i от 1 до n

        ввод x

        если mod(x, 4) == 0 то

            count := count + 1

            если x < maximum то

                maximum := x

            все

        все

    кц

    если count > 0 то

        вывод count, нс

        вывод maximum

    иначе

        вывод "NO"

    все

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

    const int n = 4;

    int x, maximum, count;

    count = 0;

    maximum = 1000;

    for (int i = 1; i <= n; i++) {

        cin >> x;

        if ( x % 4 == 0 ) {

            count++;

            if ( x < maximum )

                maximum = x;

        }

    }

    if ( count > 0 ) {

        cout << count << endl;

        cout << maximum;

    }

    else

        cout << "NO";

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе последовательности: 2 8 4 3.

2. Приведите пример такой последовательности, содержащей хотя бы одно делящееся нацело на 4 число, что при её вводе приведённая программа, несмотря на ошибки, выведет правильный ответ.

3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.

Примечание. 0 делится на любое натуральное число.

Задание Д25 C2.1 (тема Д25 C2, №15641)

Варианты

Текст задания

Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, который находит количество элементов массива, меньших 100, не делящихся на 3 без остатка, после чего заменяет в массиве соответствующие значения на найденное количество. После чего выводит полученный массив на экран.

 

 

БейсикPython

CONST N = 40

DIM A (1 TO N) AS INTEGER

DIM I, J, K AS INTEGER

FOR I = 1 TO N

     INPUT A(I)

NEXT I

     END

# допускается также

# использовать две

# целочисленные

# переменные j, k

a = []

n = 40

for i in range(n):

     a.append(int(input()))

...

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

const n = 40;

var

    a: array [0..n-1] of integer;

     i, j, k: integer;

begin

    for i := 0 to n-1 do

        readln(a[i]);

     ...

end.

алг

нач

цел N = 40

целтаб а[1:N-1]

цел i, j, k

нц для i от 1 до N-1

ввод a[i]

кц

...

кон

Си++

#include <iostream>

using namespace std;

#define n 40

     int main() {

     int a[n]; int i, j, k;

     for (i = 0; i < n; i++) std::cin >> a[i];

    ...

     return 0;

}

 

Задание Д25 C2.2 (тема Д25 C2, №15865)

Варианты

Текст задания

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит сумму элементов массива, меньших 200 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов:

204

115

27

20

305

4

программа должна вывести следующий массив:

204

135

27

135

305

4

 

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

 

БейсикPython

CONST N AS INTEGER = 30

DIM A (1 TO N) AS LONG

DIM I, J, K AS LONG

FOR I = 1 TO N

     INPUT A(I)

NEXT I

END

# допускается также

# использовать две

# целочисленные

# переменные j, k

a = []

n = 30

for i in range(0, n):

     a.append(int(input()))

...

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

const n = 30;

var

    a: array [1..n] of longint;

     i, j, k: longint;

begin

    for i := 1 to n do

        readln(a[i]);

     ...

end.

алг

нач

    цел N = 30

    целтаб а[1:N]

    цел i, j, k

    нц для i от 1 до N

        ввод a[i]

    кц

    ...

кон

Си++

#include <iostream>

using namespace std;

const int n = 30;

int main() {

    int a[n];

    int i, j, k;

    for (i = 0; i < n; i++)

        std::cin >> a[i];

    ...

     return 0;

}

 

 

качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).

Задание Д26 C3.1 (тема Д26 C3, №15642)

Варианты

Текст задания

Два игрока, Паша и Вася, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может добавить в кучу один или четыре камня или увеличить количество камней в куче в пять раз. Игра завершается в тот момент, когда количество камней в куче становится не менее 69. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 69 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 68.

Задание 1. а) Укажите все такие значения числа S, при которых Паша может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S. б)Укажите такое значение S, при котором Паша не может выиграть за один ход, но при любом ходе Паши Вася может выиграть своим первым ходом. Опишите выигрышную стратегию Васи.

Задание 2. Укажите 2 таких значения S, при которых у Паши есть выигрышная стратегия, причём Паша не может выиграть за один ход и может выиграть своим вторым ходом независимо от того, как будет ходить Вася. Для каждого указанного значения S опишите выигрышную стратегию Паши.

Задание 3. Укажите хотя бы одно значение S, при котором у Васи есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Паши, и у Васи нет стратегии, которая позволит ему гарантированно выиграть первым ходом. Для указанного значения S опишите выигрышную стратегию Васи. Постройте дерево всех партий, возможных при этой выигрышной стратегии Васи (в виде рисунка или таблицы).

Задание Д26 C3.2 (тема Д26 C3, №15866)

Варианты

Текст задания

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или четыре камня или увеличить количество камней в куче в пять раз. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 19 или 75 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче становится не менее 70.

Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет 70 или больше камней.

В начальный момент в куче было S камней; 1 меньше или равно S меньше или равно 69.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.

Выполните следующие задания. Во всех случаях обосновывайте свой ответ.

Задание 1.

а) Укажите все такие значения числа S, при которых Петя может выиграть один ход.

б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани.

Задание 2.

Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

—Петя не может выиграть за один ход;

—Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Для каждого указанного значения S опишите выигрышную стратегию Пети.

Задание 3.

Укажите значение S, при котором одновременно выполняются два условия:

—у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;

—у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Для указанного значения S опишите выигрышную стратегию Вани.

Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход; в узлах — количество камней в куче.

Дерево не должно содержать партии, невозможные при реализации выигрывающим игроком своей выигрышной стратегии. Например, полное дерево игры не является верным ответом на это задание.

Задание Д27 C4.1 (тема Д27 C4, №15643)

Варианты

Текст задания

На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре не важен). Необходимо определить количество пар, для которых произведение элементов не делится на 34.

Описание входных и выходных данных

В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000. В качестве результата программа должна напечатать одно число: количество пар, в которых произведение элементов не кратно 34.

Пример входных данных:

5

3

4

10

11

17

Пример выходных данных для приведённого выше примера входных данных:

8

Пояснение. Из пяти заданных чисел можно составить 10 попарных произведений: 3·4, 3·10, 3·11, 3·17, 4·10, 4·11, 4·17, 10·11, 10·17, 11·17 (результаты: 12, 30, 33, 51, 40, 44, 68, 110, 170, 187). Из них на 34 не делятся 8 произведений (3·4=12, 3·10=30, 3·11=33, 3·17=51, 4·10=40, 4·11=44, 10·11=110, 11·17=187).

Требуется написать эффективную по времени и по памяти программу для решения описанной задачи.

Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз.

Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает 1 Кбайт и не увеличивается с ростом N.

Максимальная оценка за правильную (не содержащую синтаксических ошибок и дающую правильный ответ при любых допустимых входных данных) программу, эффективную по времени и по памяти, — 4 балла.

Максимальная оценка за правильную программу, эффективную только по времени — 3 балла.

Максимальная оценка за правильную программу, не удовлетворяющую требованиям эффективности, — 2 балла.

Вы можете сдать одну программу или две программы решения задачи (например, одна из программ может быть менее эффективна). Если Вы сдадите две программы, то каждая из них будет оцениваться независимо от другой, итоговой станет бо́льшая из двух оценок.

Перед текстом программы обязательно кратко опишите алгоритм решения. Укажите использованный язык программирования и его версию.

Задание Д27 C4.2 (тема Д27 C4, №15867)

Варианты

Текст задания

На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре не важен). Необходимо определить количество пар, для которых произведение элементов не кратно 14.

Описание входных и выходных данных

В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 1000. В качестве результата программа должна напечатать одно число: количество пар, в которых произведение элементов не кратно 14.

Пример входных данных:

4

2

6

5

42

Пример выходных данных для приведённого выше примера входных данных:

3

Пояснение. Из четырёх заданных чисел можно составить 6 попарных произведений: 2 · 6, 2 · 5, 2 · 42, 6 · 5, 6 · 42, 5 · 42. Из них на 14 не делятся 3 произведения (2 · 6, 2 · 5, 6 · 5).

Требуется написать эффективную по времени и по памяти программу для решения описанной задачи.

Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз.

Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает 1 Кбайт и не увеличивается с ростом N.

Максимальная оценка за правильную (не содержащую синтаксических ошибок и дающую правильный ответ при любых допустимых входных данных) программу, эффективную по времени и по памяти, — 4 балла.

Максимальная оценка за правильную программу, эффективную только по времени — 3 балла.

Максимальная оценка за правильную программу, не удовлетворяющую требованиям эффективности, — 2 балла.

Вы можете сдать одну программу или две программы решения задачи (например, одна из программ может быть менее эффективна). Если Вы сдадите две программы, то каждая из них будет оцениваться независимо от другой, итоговой станет бо́льшая из двух оценок.

Перед текстом программы обязательно кратко опишите алгоритм решения. Укажите использованный язык программирования и его версию.