/*
Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).
If d(a) = b and d(b) = a, where a ≠ b, then a and b are an amicable pair and each of a and b are called amicable numbers.

For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.

Evaluate the sum of all the amicable numbers under 10000.
*/
var getDivisorSum = function(n) {

  var limit = n, total = 1;
  for (var i = 2; i < limit; i ++) {
    if (n % i === 0) {
      limit = n / i;
      total += i;
      total += limit;
    }
  }
  return total;
};
var getAmicableNumber = function (n) {
  if (typeof n !== 'number' || n <= 1) return 0;
  var counted = {}, total = 0, sum, amicalSum;
  for (var i = 2; i < n && !counted[i]; i ++) {
    sum = getDivisorSum(i);
    if (sum < n && getDivisorSum(sum) === i && sum !==i) {
      counted[sum] = true;
      counted[i] = true;
      total += i;
      total += sum;
      console.log(sum, i);
    }
  }
  return total;
};
@@ -842,171 +842,182 @@
  %3C n
- && !counted%5Bi%5D; i ++) %7B%0A    sum = getDivisorSum(i);%0A    if (sum %3C n && getDivisorSum(sum) === i && sum !==i) %7B%0A      counted%5Bsum%5D = true;%0A      counted%5Bi%5D = true;
+; i ++) %7B%0A    if (counted%5Bi%5D) continue;%0A    sum = getDivisorSum(i);%0A    counted%5Bi%5D = true;%0A    counted%5Bsum%5D = true;%0A    if (sum %3C n && sum !==i && getDivisorSum(sum) === i) %7B
 %0A   
@@ -1073,16 +1073,15 @@
 log(
-sum, i);
+i, sum)
 %0A   

edit 021 amicable number