(П. Финкель) В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(1\) до \(200~000\) включительно. Определите количество троек последовательности, для которых произведение всех цифр трёх чисел не превосходит \(2 \cdot 10^9\) и удовлетворяет маске «\(53{*}7{*}\)». В качестве ответа укажите количество таких троек и наибольшее произведение их цифр. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Решение:
Python
def prod_dig(n):
ns = str(n)
ans = 1
for c in ns:
ans *= int(c)
return ans
nums = [int(x) for x in open('5799.txt')]
q, mp = 0, 0
for a, b, c in zip(nums, nums[1:], nums[2:]):
p = prod_dig(a) * prod_dig(b) * prod_dig(c)
ps = str(p)
if p <= 2 * 10**9 and ps[:2] == '53' and '7' in ps:
q += 1
mp = max(mp, p)
print(q, mp)
Ответ: \(4 \,\, 537477120\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене