티스토리 뷰

Algorithm/BOJ

백준 9506번 C++

poopooreum 2023. 8. 24. 10:23
반응형
백준 9506번 약수들의 합

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

9506번: 약수들의 합

어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.

www.acmicpc.net



정답 코드

#include<iostream>
#include<vector>
using namespace std;
vector<int>arr;
int find(int input){
    int cnt=0,flag=0;
    for(int x=1;x<=input/2;x++){
        if(input%x==0){
            arr.push_back(x);
            cnt+=x;
            }
    }
    if(cnt==input)
        flag=1;
    else
        flag=0;
    return flag;
}
int main(){
    while(1){
        int a;
        cin>>a;
        if(a==-1)
            break;
        int flag=find(a);
        if(flag==0)
            cout<<a<<" is NOT perfect."<<endl;
        else{
            cout<<a<<" = ";
            for(int x=0;x<arr.size();x++){
                if(x==arr.size()-1)
                    cout<<arr[x]<<endl;
                else
                    cout<<arr[x]<<" + ";               
                }
            }
        arr.clear();
    }    
}

문제 풀이

주어진 수를 반복문을 돌리면서 약수인 경우에는
벡터에 push한 후 출력하였습니다. 작은 수부터
차례대로 나누었기 때문에 정렬은 할 필요가 없어용

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 9711번 C++  (0) 2023.09.04
백준 9663번 C++  (0) 2023.09.03
백준 9498번 C++  (0) 2023.08.24
백준 9461번 C++  (0) 2023.08.24
백준 9184번 C++  (0) 2023.08.24
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함