Задача к ЕГЭ по информатике на тему «делители числа» №1

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [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
Оцените статью
Я решу все!