.06 Макс/мин, кол-во пар, произведение кратно/не кратно
Ошибка.
Попробуйте повторить позже
На вход программы поступает последовательность из N целых положительных чисел, необходимо определить количество пар двух элементов последовательности с различными номерами, произведение которых даёт число кратное 18.
Входные данные: Дан входной файл, который содержит в первой строке количество чисел N (1 N
100000). В каждой из последующих N строк записано одно натуральное число, не превышающее
1000.
Пример организации исходных данных во входном файле:
4
2
8
9
27
Пример выходных данных для приведённого выше примера входных данных: 4 (это пары: 2,9; 2,27; 8,9; 8,27)
В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.
Для А
s = open(’27-8a.txt’, ’r’).readlines()[1:] arr = [] for i in range(len(s)): arr.append(int(s[i])) n = len(arr) cnt = 0 for i in range(n - 1): for j in range(i + 1, n): if (arr[i]*arr[j]) % 18 == 0: cnt += 1 print(cnt)
Для Б статика
f = open(’1.txt’) n = int(f.readline()) ans = 0 k18 = 0 k9 = 0 k6 = 0 k3 = 0 k2 = 0 nk = 0 for i in range(n): x = int(f.readline()) if x % 18 == 0: ans += (k18 + nk + k9 + k6 + k3 + k2) k18 += 1 elif x % 9 == 0: ans += (k18 + k2 + k6) k9 += 1 elif x % 6 == 0: ans += (k18 + k3 + k9 + k6) k6 += 1 elif x % 3 == 0: ans += (k18 + k6) k3 += 1 elif x % 2 == 0: ans += (k18 + k9) k2 += 1 else: ans += k18 nk += 1 print(ans)
Для Б динаминка
with open(’27-8b.txt’) as f: n = int(f.readline()) count = 0 D = 18 # наш делитель k = [0]*D#массив,в котором каждый элемент- это количество чисел с определенном остатком от D for i in range(n): x = int(f.readline()) for d in range(D):# проходимся по нашим остаткам if (x*d) % 18 == 0: count += k[d]#прибавляем к счетчику значение в списке k под индексом остатка k[x % D] += 1# увеличиваем определенное значение в списке,в зависимости от того,чему равен остаток x от D print(count)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!