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

Просмотры: 128
Изменено: 22 ноября 2024

Среди целых чисел, принадлежащих числовому отрезку \( [87921; \,\, 88187]\), найдите числа, сумма цифр которых кратна \(14\), а произведение цифр кратно \(18\) и не равно \(0\). Для каждого найденного числа запишите сумму и произведение его цифр в таблицу на экране с новой строки в порядке возрастания произведения цифр. (С.А. Скопинцева)

Решение:

Python


def n2arr(n):
    return list(map(int, str(n)))

def prod(a):
    p = 1
    for i in range(len(a)):
        p *= a[i]
    return p

res=[]
for x in range(87921, 88188):
    temp_arr = n2arr(x)
    s_arr = sum(temp_arr)
    p_arr = prod(temp_arr)
    if s_arr % 14 == 0 and p_arr and p_arr % 18 == 0:
        res.append((s_arr, p_arr))

for t in sorted(res, key=lambda v: v[1]):
    print(t[0], t[1])

Ответ:
\( 28 \,\, 1152\)
\( 28 \,\, 1512\)
\( 28 \,\, 2016\)
\( 42 \,\, 40824\)