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

Если такой пары нет, программа должна вывести 0.

Эффективная задача по памяти н Python:

m=0 #1-й наибольший элемент последовательности
m1=0 #2-й наибольший элемент последовательности
m6=0 #наибольший элемент кратный 6
m2=0 #наибольший элемент кратный 2 но не кратный 3
m3=0 #наибольший элемент кратный 3 но не кратный 2
n=int(input())
for i in range(0,n):
           a=int(input())
# ищем первый максимум и второй максимум
           if a>m:
                       m1=m
                        m=a
           elif a>=m1:
                       m1=a
#ищем наибольшее кратное 6-ти
           if a%6==0 and a>=m6:
                                   m6=a
           elif a%3==0 and a%2!=0 and a>=m3:
                                   m3=a
           elif a%2==0 and a%3!=0 and a>=m2:
                                   m2=a
#ищем масимальное произведение
rez=0
if m==m6:
           rez=m*m1
else:
           rez=m*m6
if m2*m3>rez:
           print(m2*m3)
else:
           print(rez)

Не эффективная задача по памяти на Python:

a=[]
m=0
n=int(input())
for i in range(0,n):
           a.append(int(input()))
for i in range(0,n-1):
           for j in range(i+1,n):
                       if (a[i]*a[j])%6==0 and (a[i]*a[j])>=m:
                                   m=(a[i]*a[j])
print(m)