# Задача 21
# Дружественные числа
# Пусть d(n) определяется как сумма делителей n (числа меньше n, делящие n нацело).
# Если d(a) = b и d(b) = a, где a ≠ b, то a и b называются дружественной парой, а каждое из чисел a и b - дружественным числом.
#
# Например, делителями числа 220 являются 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 и 110, поэтому d(220) = 284. Делители 284 - 1, 2, 4, 71, 142, поэтому d(284) = 220.
#
# Подсчитайте сумму всех дружественных чисел меньше 10000.
#
# Оригинал

def dev_summ(number):
    i = 1
    s = 0
    while number > i:
        if (number % i) == 0:
            s += i
        i += 1
    return s

s = 0

for i in range(2,100000):
    b = dev_summ(i)
    a = dev_summ(b)
    # print(i, b)
    if a == i and i!=b:
        s = s + i + b
        print(i, b)
print('Summ=', s / 2) #Summ= 31626.0 18416 17296