(Д.Ф. Муфаззалов) Число называется суперсовершенным, если сумма всех делителей суммы всех его делителей равна произведению самого числа на \(2.\) например, число \(16\) суперсовершенное. Его делители: \(1, \, 2, \, 4, \, 8, \, 16.\) Их сумма равна \(31.\) Делители числа \(31:\) \(1+31=32.\) \(32=16 \cdot 2.\) Выведите количество суперсовершенных чисел в диапазоне \([2; \, 263000]\) и наибольшее из них.
Решение:
Python
nums = []
for n in range(2, 263_001):
divs = {d for i in range(1, int(n**0.5)+1) if n % i == 0
for d in (i, n // i)}
sd = sum(divs)
sdivs = {d for i in range(1, int(sd**0.5)+1) if sd % i == 0
for d in (i, sd // i)}
if sum(sdivs) == 2 * n:
nums.append(n)
print(len(nums), max(nums))
Ответ: \(7 \,\, 262144\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене