![[C++] 백준 9단계 - 9506번 문제 (약수들의 합)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbBnsC4%2FbtseRqcSv0w%2FAAAAAAAAAAAAAAAAAAAAAGCM8EWyP3i5Oy4qkg8bUnWHW6DEOcHy4IUp3jT1M0PM%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1764514799%26allow_ip%3D%26allow_referer%3D%26signature%3DUs0jbH0uhAcCExhNpSiyLAD9Juw%253D)
[C++] 백준 9단계 - 9506번 문제 (약수들의 합)자료구조 & 알고리즘/BOJ2023. 5. 12. 00:59
      Table of Contents
        문제설명

소스코드
#include <iostream>
using namespace std;
int main()
{
	int N; int count = 0; int sum = 0;
	while (true)
	{
		cin >> N;
		if (N == -1) break;
		int* arr = new int[N]; //동적 할당
		for (int i = 1; i < N; ++i)
		{
			if (N % i == 0) //i로 나눈 나머지가 0이라면
			{
				arr[count++] = i; //배열에 i를 저장
				sum += i; //sum에 i를 더함
			}
		}
		if (sum == N) //완전수라면
		{
			cout << N << " = ";
			for (int i = 0; i < count; ++i)
			{
				if (i == count - 1) cout << arr[i] << endl; //배열의 마지막은 +를 출력하면 안된다.
				else cout << arr[i] << " + "; // 배열 원소와 +를 출력한다.
			}
		}
		else cout << N << " is NOT perfect." << endl;
		cin.ignore(); //입력 버퍼 비우기
		count = 0; sum = 0; //0으로 초기화
	}
	
}
풀이
- N을 입력받고 N개만큼 동적할당
- 약수들을 배열에 저장하고 sum에 약수들을 모두 더한다.
- 약수들의 합과 N이 같다면 완전수이므로 출력 형식대로 출력한다.
- 마지막엔 count와 sum변수들을 0으로 초기화 시킨다. 입력버퍼 또한 비워준다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
| [C++] 백준 9단계 - 2581번 문제 (소수) (1) | 2023.05.12 | 
|---|---|
| [C++] 백준 9단계 - 1978번 문제 (소수 찾기) (0) | 2023.05.12 | 
| [C++] 백준 9단계 - 2501번 문제 (약수 구하기) (0) | 2023.05.11 | 
| [C++] 백준 9단계 - 5086번 문제 (배수와 약수) (0) | 2023.05.10 | 
| [C++] 백준 8단계 - 10757번 문제 (큰 수 A+B) (0) | 2023.05.09 | 
![[C++] 백준 9단계 - 2581번 문제 (소수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbC0vhT%2FbtsfaNMBhAF%2FAAAAAAAAAAAAAAAAAAAAAGcwbmry0JZd6GGywbQqPe8bOOTTaePDqz5zWVTN6i28%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1764514799%26allow_ip%3D%26allow_referer%3D%26signature%3DhY%252FjfjyvoIMLktRewspVm2TX56M%253D) 
                  ![[C++] 백준 9단계 - 1978번 문제 (소수 찾기)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FekLQYB%2FbtsfbzfUC73%2FAAAAAAAAAAAAAAAAAAAAAEzibzpWrgdsI-x75jko51ARtRprp6VVo_VuvYgEqcJO%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1764514799%26allow_ip%3D%26allow_referer%3D%26signature%3D3RU%252B%252F7wUccqRBwkWFmU%252BcXZnhPE%253D) 
                  ![[C++] 백준 9단계 - 2501번 문제 (약수 구하기)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbwlvLe%2FbtseK6LHyj8%2FAAAAAAAAAAAAAAAAAAAAAI8S2aeRT0OTsk_s3Is4v-Nhk7ZRdfgpOR1OCtGgZTvC%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1764514799%26allow_ip%3D%26allow_referer%3D%26signature%3Db9osgHK%252Bx8wUY0D470Z1Dpp5iDk%253D) 
                  ![[C++] 백준 9단계 - 5086번 문제 (배수와 약수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbvjloU%2FbtseBfPwctZ%2FAAAAAAAAAAAAAAAAAAAAAPnz9yp75AEDTtUj32kgNExFvSnmgqPZ26Q_8zl52xzJ%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1764514799%26allow_ip%3D%26allow_referer%3D%26signature%3D9b4Ab0l6SvL7cFkqhpanKxsuNgU%253D)