Присоединиться

Информатика·Программирование·11 класс

Каждая из следующих N строк содержит одно число, не превышающее 100

Условие

Дана последовательность натуральных чисел. Назовём парой любые два числа из последовательности. Необходимо определить количество пар, в которых сумма чисел в паре делится без остатка на 4, а их произведение на 6561.Входные данные.Файл АФайл ВПервая строка входного файла содержит целое число N — общее количество чисел в наборе. Каждая из следующих N строк содержит одно число, не превышающее 100 000. Гарантируется, что число в ответе не превышает 2 · 10⁹.Вам даны два входных файла (A и B), каждый из которых имеет описанную выше структуру. В ответе укажите два числа: сначала искомое количество пар для файла A, затем — для файла B. Ответ:

Ответ

306360950279

Решение по шагам

  1. Как рассуждать

    Решение. Приведем решение на языке Python для файла A.f = [int(i) for i in open('27-A.txt')]k = 0for x in range(1, len(f)): for y in range(x+1, len(f)): if not (f[x] + f[y]) % 4 and not (f[x] * f[y]) % 6561: k += 1print(k) Приведем решение на языке Python для файла В.f = [int(i) for i in open('27-B.txt')]li, F = [[0]*9 for _ in range(4)], f[1:]k = 0fn = lambda k, n: fn(k+1, n) if not n % (3 ** k) else k - 1for i in range(f[0]): four = F[i] % 4 may = fn(1, F[i]) if may > 8: may = 8 for j in range(8 - may, 9): k += li[(4 - four) % 4][j] li[four][may] += 1print(k) Ответ: 306

Осталось ещё 1 шаг — откроются после входа:

  • Шаг 2
Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Программирование»