# Задача 23
# Неизбыточные суммы
# Совершенным числом называется число, у которого сумма его
# делителей равна самому числу. Например, сумма делителей числа 28 равна 1 + 2 + 4 + 7 + 14 = 28,
# что означает, что число 28 является совершенным числом.
#
# Число n называется недостаточным, если сумма его делителей меньше n, и называется
# избыточным, если сумма его делителей больше n.
#
# Так как число 12 является наименьшим избыточным числом (1 + 2 + 3 + 4 + 6 = 16), наименьшее число,
# которое может быть записано как сумма двух избыточных чисел, равно 24. Используя математический анализ,
# можно показать, что все целые числа больше 28123 могут быть записаны как сумма двух избыточных чисел.
# Эта граница не может быть уменьшена дальнейшим анализом, даже несмотря на то, что наибольшее число,
# которое не может быть записано как сумма двух избыточных чисел, меньше этой границы.
#
# Найдите сумму всех положительных чисел, которые не могут быть записаны как сумма двух избыточных чисел.
from math import sqrt

OPN = []

def all_devider(number):
    A = []
    for i in range(2, int(sqrt(number) // 1 + 1)):
        if (number % i) == 0:
            A.append(i)
            A.append(number / i)
    return A

def is_owerpower_number(number):
    A = all_devider(number)
    s = 0
    for i in range(len(A)):
        s += A[i]
    if s > number:
        return True
    return False

for i in range(28123):
    if is_owerpower_number(i):
        OPN.append(i)

A = []

for i in  range(len(OPN)):
    for j in range(len(OPN)):
        if (OPN[i] + OPN[j]) < 28123:#and (OPN[i] + OPN[j]) not in A:
            A.append(OPN[i] + OPN[j])
A.sort()
# print(A)


sum = 0
j = 0

for i in range(28123):
    if j == len(A):
        break
    if i < A[j]:
        sum += i
    else:
        while A[j] <= i:
            j += 1
            if j == len(A):
                break
print(sum) #3921523
