Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [414400; 561293] числа, у которых сумма нетривиальных делителей больше числа и при этом не кратна 6. Нетривиальный делитель — это делитель, который не равен 1 и самому числу. В ответ укажите количество таких чисел и через пробел максимальную сумму цифр подходящего числа.
def divs(x): # функция, которая возвращает отсортированный список делителей числа
d = set() # Множество для хранения делителей
for i in range(2,int(x**0.5)+1):
if x % i == 0:
# Добавляем делитель и парный ему в множество
d |= {i,x//i}
return sorted(d) # Возвращаем отсортированный список делителей числа x
count = 0
mx_sm = 0
for x in range(414_400,561_294):
d = sum(divs(x))
if d > x and d % 6 != 0:
count += 1
mx_sm = max(mx_sm,sum(map(int,str(x)))) # подсчёт суммы цифр подходящего числа и сравнение с максимальной суммой цифр
print(count,mx_sm)
Ответ: 36356 48