WN_인생기록

9506-약수들의 합 (백준) 본문

알고리즘/문제풀이

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;
};

 

 

문제 풀이보다 출력이 더 까다로운 문제였던거 같다 ㅋㅋ

'알고리즘 > 문제풀이' 카테고리의 다른 글

1436 - 영화감독 숌 (백준)  (0) 2024.06.20
11653 - 소인수분해(백준)  (1) 2024.06.08
2231 - 분해합(백준)  (0) 2024.06.05
2869 - 달팽이는 올라가고 싶다(백준)  (0) 2024.06.04
2292 - 벌집(백준)  (0) 2024.05.31