백준/약수, 배수와 소수

9506: 약수들의 합 /C++

Koalitsiya 2023. 3. 20. 15:57

문제

 

풀이

#include <iostream>
#include <vector>

using namespace std;

int main() {
	int n;
	vector<int> v;

	while (true) {
		int sum = 0;

		cin >> n;

		if (n == -1) break;

		for (int i = 1; i < n; i++) {
			if (!(n % i)) {
				sum += i;
				v.push_back(i);
			}
		}

		if (n == sum) {
			cout << n << " = ";

			for (int i = 0; i < v.size(); i++) {
				if (i == v.size() - 1) cout << v[i] << "\n";
				else cout << v[i] << " + ";
			}
		}
		else
			cout << n << " is NOT perfect.\n";

		v.clear();
	}

	return 0;
}