Пусть S – сумма шести наибольших различных натуральных делителей натурального числа N, не считая самого числа N. Если у числа N меньше шести таких делителей, то S считается равным нулю. Найдите пять наименьших натуральных чисел, превышающих 20000, для которых S положительна и кратна 25.
В ответе для каждого из найденных чисел в отдельной строке запишите само число, а затем соответствующее значение S.
Формат ввода ответа: число1 S1 число2 S2 число3 S3 и тд.
c = 0
for i in range(20001, 30000):
ds = set()
# Добавляем отдельно единицу в множество делителей
ds.add(1)
for d in range(2, int(i**0.5)+1):
if i % d == 0:
ds.add(d)
ds.add(i//d)
# Из множества делаем отсортированный список, чтобы можно было взять срез
ds = sorted(ds)
if len(ds) < 6:
s = 0
else:
s = sum(ds[-6:])
if s > 0 and s % 25 == 0:
c += 1
print(i, s)
if c == 5:
break
Ответ: 20056 19075 20106 23475 20188 20600 20196 29325 20250 28575