(А. Богданов) В файле содержится последовательность натуральных чисел, которые могут принимать значения от \(10\) до \(100000\) включительно. Обозначим через \(S\) сумму цифр минимального числа, состоящего из строго убывающих цифр (например, \(321,\) где \(3>2>1).\)
Определите количество пар последовательности, в которых только одно число состоит из строго возрастающих цифр (например, \(247,\) где \(2<4<7),\) а произведение элементов пары кратно \(S.\) В ответе запишите сначала количество найденных пар, затем минимальную из сумм элементов таких пар. Под парой элементов подразумеваются два соседних элемента последовательности.
Решение:
Python
def decr(n):
ns = str(n)
return all(a > b for a, b in zip(ns, ns[1:]))
def incr(n):
ns = str(n)
return all(b > a for a, b in zip(ns, ns[1:]))
nums = [int(x) for x in open('6387.txt')]
tmp = [x for x in nums if decr(x)]
S = sum(int(x) for x in str(min(tmp)))
q, ms = 0, float('inf')
for a, b in zip(nums, nums[1:]):
if incr(a) != incr(b) and a * b % S == 0:
q += 1
ms = min(ms, a + b)
print(q, ms)
Ответ: \(30 \,\, 4138\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене