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