These define three classifications of positive integers based on their   proper divisors.

Let   P(n)   be the sum of the proper divisors of   n   where the proper divisors are all positive divisors of   n   other than   n   itself.

   if    P(n) <  n    then  n  is classed as  deficient  (OEIS A005100).
   if    P(n) == n    then  n  is classed as  perfect    (OEIS A000396).
   if    P(n) >  n    then  n  is classed as  abundant   (OEIS A005101).



Example

6   has proper divisors of   1,   2,   and   3.

1 + 2 + 3 = 6,   so   6   is classed as a perfect number.



Task

Calculate how many of the integers   1   to   20,000   (inclusive) are in each of the three classes.

Show the results here.



Related tasks

   Aliquot sequence classifications.   (The whole series from which this task is a subset.)
   Proper divisors
   Amicable pairs


enum Classification {
  DEFICIENT,
  PERFECT,
  ABUNDANT
}
 
void main() {
  var i = 0; var j = 0;
  var sum = 0; var try_max = 0;
  int[] count_list = {1, 0, 0};
  for (i = 2; i <= 20000; i++) {
    try_max = i / 2;
    sum = 1;
    for (j = 2; j < try_max; j++) {
      if (i % j != 0)
        continue;
      try_max = i / j;
      sum += j;
      if (j != try_max)
        sum += try_max;
    }
    if (sum < i) {
      count_list[Classification.DEFICIENT]++;
      continue;
    }
    if (sum > i) {
      count_list[Classification.ABUNDANT]++;
      continue;
    }
    count_list[Classification.PERFECT]++;
  }
  print(@"There are $(count_list[Classification.DEFICIENT]) deficient,");
  print(@" $(count_list[Classification.PERFECT]) perfect,");
  print(@" $(count_list[Classification.ABUNDANT]) abundant numbers between 1 and 20000.\n");
}