Назовем число красивым, если оно делится на сумму своих цифр и имеет ровно 6 нетривиальных делителей. Найти на промежутке количество красивых чисел и их среднее арифметическое. В ответе запишите два числа через пробел: сначала количество чисел, потом целую часть их среднего арифметического.
def sum_digits(n): # сумма цифр
s = 0
while n > 0:
s += n % 10
n //= 10
return s
def count_div(n): # функция для подсчёта количества делителей
k = 0
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
k += 1
if n // i != i:
k += 1
return k
counter, summ = 0, 0
for i in range(51242, 421422):
if i % sum_digits(i) == 0 and count_div(i) == 6: # проверка по условию
counter += 1
summ += i
print(counter, int(summ / counter))
Ответ: 3519 228061