[C++] 백준 9506 | 약수들의 합

heige·2023년 12월 29일
0

BOJ

목록 보기
32/46
post-thumbnail

문제

https://www.acmicpc.net/problem/9506

풀이

#include <bits/stdc++.h>
using namespace std;
int main(){
  while(1) {
    int n = 0;
    cin >> n;
    vector<int> divisor;
    int sum = 0;
    if(n == -1) break;
    for (int i = 1; i < n; i++) {
      if (n % i == 0) {
        divisor.push_back(i);
        sum += i;
      }
    }

    if (sum == n) {
      cout << n <<  " = ";
      for (int i = 0; i < divisor.size() - 1; i++) {
        cout << divisor[i] << " + ";
      }
      cout << divisor[divisor.size()-1] << '\n';
    } else  cout << n << " is NOT perfect." << '\n';
  }
  return 0;
}
  • while 문 선언
  • 변수 `n₩ 선언 및 초기화
  • 약수를 담을 vector 만들기
  • 약수의 합을 구할 변수 sum 선언 및 초기화
  • -1 입력 시 루프 종료
  • n의 약수를 divisor vector에 담고, 약수의 합도 구한다.
  • sumn과 같으면 완전수이기 때문에 형식에 맞게 출력
  • 아닌 경우 is NOT perfect. 출력.
profile
웹 백엔드와 클라우드 정복을 위해 탄탄한 기반을 쌓아가고 있는 예비개발자입니다. 'IT You Up'은 'Eat You Up'이라는 표현에서 비롯되어, IT 지식을 끝까지 먹어치운다는 담고 있습니다.

0개의 댓글