Задача C. 27-3

Входной файл:Стандартный вход   Ограничение времени:5 сек
Выходной файл:Стандартный выход   Ограничение памяти:256 Мб

Условие

По каналу связи передаётся последовательность положительных целых чисел, все числа не превышают 1000. Количество чисел известно, но может быть очень велико. Вам требуется вычислить контрольное значение последовательности — наибольшее число R, удовлетворяющее следующим условиям:

 

1) R — произведение двух различных переданных элементов последовательности («различные» означает, что не рассматриваются квадраты переданных чисел, произведения различных элементов последовательности, равных по величине, допускаются);

 

2) R делится на 14.

 

Если такого числа R нет, то контрольное значение полагается равным 0.

 

Напишите программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет вычислять контрольное значение. Программа должна напечатать отчёт по следующей форме:

 

Computed value: ...

 

Перед текстом программы кратко опишите используемый Вами алгоритм решения.

 

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

 

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

Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Если решение одного из заданий не представлено, то считается, что оценка за это задание составляет 0 баллов.

Задание Б является усложненным вариантом задания А, оно содержит дополнительные требования к программе. Перед программой укажите версию языка программирования.

 

А. Напишите на любом языке программирования программу для решения поставленной задачи, в которой входные данные будут запоминаться в массиве, после чего будут проверены все возможные пары элементов.

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

Максимальная оценка за выполнение задания А – 2 балла.

Б. Напишите программу для решения поставленной задачи, которая будет эффективна как по времени, так и по памяти (или хотя бы по одной из этих характеристик).

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

 

 

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

 

б

 

77

14

7

9

 

499

100

 

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

 

Computed value: 7700


0.062s 0.014s 13