Задание выполняется с использованием прилагаемых файлов
Последовательность натуральных чисел характеризуется числом — наибольшим числом, кратным 15 и являющимся произведением двух элементов последовательности с различными номерами. Найдите
. Гарантируется, что хотя бы одно такое произведение в последовательности есть.
Входные данные:
Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество чисел (
). В каждой из последующих
строк записано одно натуральное число, не превышающее
.
Пример организации исходных данных во входном файле:
Пример выходных данных для приведённого выше примера входных данных:
В ответе укажите два числа: сначала значение искомого произведения для файла А, затем, через пробел, для файла B.
Решение 1 (неэффективное)
f = open("27A.txt")
n = int(f.readline())
a = [int(f.readline()) for x in range(n)]
ans = 0
for i in range(n):
for j in range(i + 1, n):
X = a[i] * a[j]
if X % 15 == 0:
ans = max(ans, X)
print(ans)
Решение 2 (эффективное)
f = open("27B.txt")
mn = 0
m3 = 0
m5 = 0
m15 = 0
ans = 0
n = int(f.readline())
for i in range(n):
x = int(f.readline())
if x % 15 == 0:
ans = max(ans, x*m15, x*m5, x*m3, x*mn)
if x > m15:
m15 = x
elif x % 3 == 0:
ans = max(ans, x*m15, x*m5)
if x > m3:
m3 = x
elif x % 5 == 0:
ans = max(ans, x*m3, x*m15)
if x > m5:
m5 = x
else:
ans = max(ans, x*m15)
if x > mn:
mn = x
print(ans)