public static void Main()
int maxNumberToEvaluate = 10000;
int[] sumOfProperDivisors = new int[maxNumberToEvaluate + 1];
int sumOfAllAmicableNumbers = 0;
for (int i = 1; i <= maxNumberToEvaluate; i++)
for (int j = 1; j <= i / 2; j++)
sumOfProperDivisors[i] += j;
for (int i = 1; i <= maxNumberToEvaluate; i++)
if (sumOfProperDivisors[i] <= maxNumberToEvaluate && i != sumOfProperDivisors[i] && i == sumOfProperDivisors[sumOfProperDivisors[i]])
sumOfAllAmicableNumbers += sumOfProperDivisors[i] + sumOfProperDivisors[sumOfProperDivisors[i]];
sumOfAllAmicableNumbers = sumOfAllAmicableNumbers / 2;
Console.WriteLine(sumOfAllAmicableNumbers);