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

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

Последовательность натуральных чисел характеризуется числом Y

Условие

Последовательность натуральных чисел характеризуется числом Y - наибольшим числом, кратным 26 и являющимся произведением двух элементов последовательности с различными номерами. Напишите эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), находящую число Y для последовательности натуральных чисел, значение каждого элемента которой не превосходит 1000. Программа должна напечатать найденное число, если оно существует для заданной последовательности, или ноль в противном случае. Перед текстом программы кратко опишите используемый Вами алгоритм решения. На вход программе в первой строке подаётся количество чисел N. В каждой из последующих N строк записано одно натуральное число, не превышающее 1000. Пример входных данных: 5 40 100 130 28 51 Пример выходных данных для приведённого выше примера входных данных: 13000

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

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

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

    Решение. Произведение двух чисел делится на 26, если: — один из сомножителей делится на 26 (второй может быть любым) либо — ни один из сомножителей не делится на 26, но один из сомножителей делится на 13, а другой - на 2.Поэтому программа, вычисляющая число Y, может работать так. Программа читает все входные данные один раз, не запоминая все данные в массиве. Программа для прочитанного фрагмента входной последовательности хранит значения четырёх величин: М13 — самое большое число, кратное 13, но не кратное 2; M2 — самое большое число, кратное 2, но не кратное 13; M26 — самое большое число, кратное 26; МAX — самое большое число среди всех элементов последовательности, отличное от М26 (если число М26 встретилось более одного раза и оно же является максимальным, то MAX = M26). После того как все данные прочитаны, искомое число Y вычисляется как максимум из произведений М26MAX и М13М2. Ниже приведён пример программы на языке Паскаль, которая реализует описанный алгоритм. Кроме того, приведён пример программы на языке Бейсик, которая правильно решает задачу, но использует алгоритм, немного отличающийся от описанного выше. Возможны и другие правильные алгоритмы.

    Допускаются решения, записанные на других языках программирования. Пример правильной и эффективной программы на языке Паскальvar M13,M2,M26,MAX,dat,res,i,N: longint; begin M13 := 0; M2 := 0; M26 := 0; MAX := 0; readln(N); for i := 1 to N do begin readln(dat); if ((dat mod

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

  1. and (dat > M13) then M13 := dat; if ((dat mod…

  2. and (dat > M2) then M2 := dat; if (dat mod…

  3. and (dat > M26) then begin if M26 > MAX then…

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

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

Другие задачи по теме «Программирование»

Последовательность натуральных чисел характеризуется числом Y — решение с объяснением | Lom Ai