Неправильный подсчет кол-ва пар элементов произведение которых кратно 6

Sirrlens

Новичок
Пользователь
Окт 16, 2020
2
0
1
Windows 10, Python версии 3.9
Написал программу на подсчет кол-ва пар элементов произведение которых будет кратно 6, но столкнулся с проблемой: неправильный подсчет, некоторые варианты считает по 2 раза
для проверки ввел 4 числа: 7, 5, 6, 12 количество пар = 5 7*6, 5*6, 6*12, 7*12, 5*12.
вывод ответа = 6 думаю посчитал два раза 6*12 и 12*6
как исправить не знаю, буду рад если подскажете что не так
Python:
# i n x k2(кратно 2) k3(кратно 3) k6(кратно 6) K(кол-во пар)
k2 = 0; k3 = 0; k6 =0; K = 0
n = int(input())
x = int(input())
for i in range(n-1):
    if (x % 2) == 0: k2 += 1
    if (x % 3) == 0: k3 += 1
    if (x % 6) == 0: k6 += 1
    x = int(input())
    if (x % 6) == 0:
        K += n-1
        print(K)
    elif (x % 3) == 0:
        K += k2
        print(K)
    elif (x % 2) == 0:
        K += k3
        print(K)
    else: K += k6
print(K)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
для проверки ввел 4 числа: 7, 5, 6, 12 количество пар = 5 7*6, 5*6, 6*12, 7*12, 5*12.
А пары с одинаковыми множителями вы не учитываете: например 6*6, 12*12.
Вот пример создания списка пар:
Python:
n = int(input('введите количество чисел: '))
lst = []
for i in range(n):
    lst.append(int(input('Введите число: ')))

x = [f'{i}*{j}' for i in lst for j in lst if i * j % 6 == 0]
x2 = []
[x2.append(i) for i in x if '*'.join(i.split('*')[::-1]) not in x2]

print(len(x2), x2)
 

Sirrlens

Новичок
Пользователь
Окт 16, 2020
2
0
1
А пары с одинаковыми множителями вы не учитываете: например 6*6, 12*12.
Вот пример создания списка пар:
Python:
n = int(input('введите количество чисел: '))
lst = []
for i in range(n):
    lst.append(int(input('Введите число: ')))

x = [f'{i}*{j}' for i in lst for j in lst if i * j % 6 == 0]
x2 = []
[x2.append(i) for i in x if '*'.join(i.split('*')[::-1]) not in x2]

print(len(x2), x2)
Я не совсем понимаю как работает этот код (5 и 7 строка), но спасибо за пример
 

Форум IT Специалистов