Search

9506 - 약수들의 합

Problem

Solution

숫자 n을 입력받고, 1부터 n까지 숫자를 돌려가면서 n과 나누어 떨어지는 수가 있다면 배열에 저장한다.
그 후 배열에 저장된 수의 합을 구하고, n과 같은지 다른지 조건문으로 예제와 같이 출력하면 된다.
#include "iostream" #include "vector" using namespace std; int main() { int n, sum = 0; while (true) { vector<int> v; sum = 0; cin >> n; if (n == -1) break; for (int i = 1; i < n; i++) { if (n % i == 0) { v.push_back(i); } } for (size_t i = 0; i < v.size(); i++) { sum += v[i]; } if (sum == n) { cout << n << " = "; for (size_t i = 0; i < v.size(); i++) { if (i == v.size() - 1) { cout << v[i]; } else { cout << v[i] << " + "; } } cout << "\n"; } else cout << n << " is NOT perfect.\n"; } }
C++
복사