#include <iostream>using namespace std;const int MAX_NUM = 5000;int sum_of_divisors(int n) {   int sum = 0;   for (int i = 1; i < n; ++i) {      if (n % i == 0) sum += i;      }   return sum;   }int main() {   int perfect = 0, deficient = 0, abundant = 0, odd_abundant = 0;   for (int i = 1; i <= MAX_NUM; ++i) {      int sum = sum_of_divisors(i);      if (i == sum) {         cout << "Number " << i << " is perfect" << endl;         ++perfect;         }         else if (i < sum) {            cout << "Number " << i << " is abundant" << endl;            ++abundant;            }            else {            cout << "Number " << i << " is deficient" << endl;            ++deficient;            }      if ((i < sum) && (i % 2 == 1)) {         cout << "Number " << i << " is odd abundant" << endl;         ++odd_abundant;         }   }   cout << "A number of deficient, odd_abundant, abundant, perfect: "   << deficient << ":" << odd_abundant << ":" << abundant << ":" << perfect << endl;   cout << "Relative proportion of deficient, odd_abundant, abundant, perfect: "   << (float) deficient/(float) MAX_NUM << ":" << (float) odd_abundant/(float) MAX_NUM << ":" << (float) abundant/(float) MAX_NUM << ":" << (float) perfect/(float) MAX_NUM << endl;}
                             
                                                
Comments
Dear visitor, Please check the updated answer.
When you run this program it only gives you 1 perfect number and I know there is more than one perfect number . How do you fix it ?