Задание 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\)