Project Euler Problem 21
def sum_of_divisors(n): if n == 1: return 0 s = 1 i = 2 while i * i <= n: if n % i == 0: if i * i == n: s += i else: s += i + n // i i += 1 return s def is_amicable(n): m = sum_of_divisors(n) if n != m: if sum_of_divisors(m) == n: return True else: return False print(sum(filter(is_amicable, range(2, 10000))))