Все числа не превышают 1000, их количество известно, но может быть
Условие
По каналу связи передаётся последовательность положительных целых чисел. Все числа не превышают 1000, их количество известно, но может быть очень велико. Затем передаётся контрольное значение — наибольшее число R, удовлетворяющее следующим условиям: 1) R — произведение двух различных переданных элементов последовательности («различные» означает, что не рассматриваются квадраты переданных чисел, произведения различных, но равных по величине элементов допускаются);2) R не делится на 15.Гарантируется, что такое число R в последовательности будет найдено. В результате помех при передаче как сами числа, так и контрольное значение могут быть искажены.Напишите эффективную, в том числе по используемой памяти, программу которая будет проверять правильность контрольного значения. Программа должна напечатать отчёт по следующей форме: Получено чисел: …Принятое контрольное значение: …Вычисленное контрольное значение: …Контроль пройден (или Контроль не пройден) Если удовлетворяющее условию контрольное значение определить невозможно, вычисленное контрольное значение не выводится, но выводится фраза «Контроль не пройден».Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию. Входные данныеВ первой строке указывается количество чисел N. В каждой из последующих N строк записано одно натуральное число, не превышающее 1000. В последней строке записано контрольное значение.Пример входных данных:5601008990800 Выходные данныеПрограмма должна напечатать отчёт по образцу, приведённому в условии.Пример выходных данных для приведённого выше примера входных данных:Получено чисел: 5Принятое контрольное значение: 800Вычисленное контрольное значение: 800Контроль пройден 4 балла ставится за эффективную и правильно работающую программу, которая, возможно, содержит одну синтаксическую ошибку.3 балла ставится в случае, когда задача фактически решена, но программа содержит до трёх синтаксических ошибок, или если допущена одна содержательная ошибка, или если все входные данные сохраняются в массиве или иной структуре данных (программа неэффективна по памяти, но эффективна по времени работы).2 балла ставится, если программа неэффективна по времени работы (перебираются все возможные пары элементов), или в программе две содержательные ошибки, либо шесть-семь синтаксических ошибок.1 балл ставится, если программа написана неверно, но из описания алгоритма и общей структуры программы видно, что экзаменуемый в целом правильно представляет путь решения задачи.Далее уточняются перечисленные выше критерии.Критерии оценивания выполнения задания | Баллы | Программа правильно работает для любых входных данных произвольного размера и находит ответ, не сохраняя входные данные в массиве. Допускается наличие в тексте программы одной синтаксической ошибки: пропущен или неверно указан знак пунктуации, неверно написано или пропущено зарезервированное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для соответствующего типа данных (если одна и та же ошибка встречается несколько раз, то это считается за одну ошибку). | 4 | Не выполнены условия, позволяющие поставить 4 балла, при этом программа работает верно, но размер используемой памяти зависит от длины входной последовательности. Например, входные данные запоминаются в массиве или другой структуре данных, размер которой соответствует числу N.Допускается одна из следующих ошибок:1) Неверно или неполно оформляется вывод результатов.2) Выводится нулевое (или какое-то другое) вычисленноеконтрольное значение, когда в последовательности нет пары чисел, произведение которых не кратно 10.3) При вычислении контрольного значения рассматриваются не все возможные пары чисел.Допускается наличие от одной до трёх синтаксических ошибок, описанных в критериях на 4 балла. | 3 | ННе выполнены условия, позволяющие поставить 3 или 4 балла, при этом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные пары чисел и выбирается пара с максимальным не кратным 10 произведением.Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла. | 2 | Не выполнены условия, позволяющие поставить 2, 3 или 4 балла, но программа работает в отдельных частных случаях. 1 балл также ставится, если программа неработоспособна или не написана, но из пояснений видно, что экзаменуемый в целом верно представляет путь решения. | 1 | Не выполнены условия, позволяющие поставить 1, 2, 3 или 4 балла. | 0 | Максимальный балл | 4 |
Формат задания
Решение по шагам
Как рассуждать
Решение. Произведение двух чисел делится на 15, если один из сомножителей делится на 15 (второй может быть любым), либо если ни один из сомножителей не делится на 15, но один из сомножителей делится на 3, а другой — на 5.Чтобы получить произведение, не делящееся на 15, нужно взять два сомножителя так, чтобы эти условия не выполнялись. Чтобы добиться этого, можно разбить все элементы входной последовательности на 4 непересекающихся класса чисел:- кратные 15 (класс 15);- кратные 3, но не кратные 5 (класс 3);- кратные 5, но не кратные 3 (класс 5);- не кратные ни 3, ни 5 (класс 0). Числа, кратные 15, можно сразу отбросить: они не могут участвовать в итоговом произведении. Произведение двух чисел не будет делиться на 15, если оба числа принадлежат одному классу, либо если числа принадлежатразным классам, но не классам 3 и
Осталось ещё 9 шагов
Шаг 2
Шаг 3
Шаг 4
Шаг 5
Шаг 6
Шаг 7
Шаг 8
Шаг 9
Шаг 10
Бесплатно · займёт минуту