알고리즘/문제풀이
9506-약수들의 합 (백준)
WhNi
2024. 6. 7. 10:37
https://www.acmicpc.net/problem/9506
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n =0;
while (n != -1)
{
cin >> n;
vector<int> x;
int answer = 0;
// 약수 찾아서 벡터 안에 대입
for (int i = 1; i < n; i++)
{
if (n % i == 0)
{
x.emplace_back(i);
}
}
//약수의 합 계산
for (int i = 0; i < x.size(); i++)
{
answer += x[i];
}
// 완전수 여부 판단 및 출력
if (answer == n)
{
cout << n << " = ";
for (int i = 0; i < x.size(); i++)
{
cout << x[i];
// 마지막 "+" 빼는 조건
if (i < x.size() - 1)
{
cout << " + ";
}
}
// 끝날때마다 줄바꿈
cout << "\n";
}
// -1 일때 프로그램 종료
else if (n == -1)
{
return 0;
}
else
{
cout << n << " is NOT perfect." << "\n";
}
}
return 0;
};
문제 풀이보다 출력이 더 까다로운 문제였던거 같다 ㅋㅋ