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

Просмотры: 130
Изменено: 24 ноября 2024

(Д.Ф. Муфаззалов) Совершенным называется число, натуральное число, равное сумме всех своих собственных делителей (то есть всех положительных делителей, отличных от самого́ числа) (например, число \( 6=1+2+3 \)). ) Выведите каждое совершенное число из диапазона \( [2; \,\, 10000]\) и количество его собственных делителей в порядке возрастания. Вывод каждого совершенного числа начинайте с новой строки. Числа в строке разделяйте пробелом.

Решение:

Python


def divisors(n):
    d = set()
    d.add(1)
    for x in range(2, int(n**0.5)+1):
        if n % x == 0:
            d.add(x)
            d.add(n // x)
    return d

for x in range(2, 10001):
    d = divisors(x)
    if x == sum(d):
        print(x, len(d))

Ответ:
\( 6 \,\, 3\)
\( 28 \,\, 5\)
\( 496 \,\, 9\)
\( 8128 \,\, 13\)