(Д.Ф. Муфаззалов) Собственными делители числа – это все его положительные делители, отличные от самого́ числа. Число называется полусовершенным, если сумма всех или некоторых его собственных делителей совпадает с самим этим числом. Определите количество таких чисел в диапазоне \([300; \, 350]\) и наибольшее из них.
Решение:
Python
from itertools import combinations
q = 0
nums = []
for n in range(300, 351):
divs = {d for i in range(2, int(n**0.5)+1) if n % i == 0
for d in (i, n // i)}
divs.add(1)
for x in range(2, len(divs) + 1):
if n in [sum(c) for c in combinations(divs, x)]:
q += 1
nums.append(n)
break
print(q, max(nums))
Ответ: \(14 \,\, 350\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене