Задание 17. Информатика. ЕГЭ. Поляков-7685

Просмотры: 166
Изменено: 24 ноября 2024

(К. Багдасарян) В файле содержится последовательность натуральных чисел, не превышающих \(1000\). Определите наиболее часто встречающийся наибольший общий делитель (НОД) среди пар последовательности. В ответе запишите найденный НОД, затем максимальную из сумм элементов, у которых такой НОД. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Файл с данными

Решение:

Python


from math import gcd

base = ''
nums = [int(x) for x in open(base + '17.txt')]
d = dict()
sum_d = dict()

for p in zip(nums, nums[1:]):
    g = gcd(*p)
    d[g] = d.get(g, 0) + 1
    sum_d[g] = max(sum_d.get(g, 0), sum(p))

pop_nod = 0
q = 0
for k, v in d.items():
    if v > q:
        q = v
        pop_nod = k
print(pop_nod, sum_d[pop_nod])

Ответ: \(17 \,\, 1649\)