#include #include using namespace std; const int PERFECT = 0; const int ABUNDANT = 1; const int DEFICIENT = 2; int classifyNumber(int n, vector &factors); vector factorNumber(int n); int sumOfVector(vector v); void printVector(vector v); int main (int argc, char * const argv[]) { int n; vector factors; cout << "\n\nNew Horizons Governors School Team B\n"; cout << "Enter a positive integer to classify: "; cin >> n; if (n <= 0) return -1; int classification = classifyNumber(n, factors); cout << "This number is "; if (classification == PERFECT) cout << "perfect"; else if (classification == ABUNDANT) cout << "abundant"; else if (classification == DEFICIENT) cout << "deficient"; else cout << "something went terribly wrong"; cout << "\nFactors are given below\n"; printVector(factors); cout << "\n"; return 0; } int classifyNumber(int n, vector &factors) { factors = factorNumber(n); int factorSum = sumOfVector(factors); if (factorSum == n) return PERFECT; else if (factorSum > n) return ABUNDANT; else return DEFICIENT; } vector factorNumber(int n) { vector v; v.push_back(1); //one is always a factor for (int i = 2; i < n; i++) if (n % i == 0) v.push_back(i); return v; } int sumOfVector(vector v) { int sum = 0; for (vector::iterator it = v.begin(); it != v.end(); it++) sum += *it; return sum; } void printVector(vector v) { for (vector::iterator it = v.begin(); it != v.end(); it++) cout << *it << " "; }