λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Algorithm πŸ§‘πŸ»‍πŸ’»/λ°±μ€€(BOJ)

[λ°±μ€€,c++] 14563번 - μ™„μ „μˆ˜

by dkswnkk 2021. 11. 11.

문제

 

14563번: μ™„μ „μˆ˜

μ–΄λ– ν•œ μžμ—°μˆ˜ N에 λŒ€ν•΄μ„œ N을 μ œμ™Έν•œ μ•½μˆ˜(μ§„μ•½μˆ˜)의 합이 N이 λ˜λŠ” μžμ—°μˆ˜λ₯Ό μ™„μ „μˆ˜λΌκ³  ν•œλ‹€. 예λ₯Ό λ“€μ–΄, 6의 μ•½μˆ˜λŠ” 1, 2, 3, 6인데 1+2+3은 6이기 λ•Œλ¬Έμ— μ™„μ „μˆ˜μ΄λ‹€. 또 μ§„μ•½μˆ˜μ˜ 합이 자기 μžμ‹ 

www.acmicpc.net

 

μ½”λ“œ

#include <iostream>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int T; cin >> T;
    while (T--) {
        bool check[10001] = { false };
        int sum = 0;
        int N; cin >> N;
        for (int i = 1; i<=N/2; i++) {    
            if (N % i == 0) check[i] = true;
            }

        for (int i = 1; i <= N/2; i++) {
            if (check[i])sum += i;
        }

        if (sum > N) cout << "Abundant" << "\n";
        else if (sum < N) cout << "Deficient" << '\n';
        else cout << "Perfect" << "\n";


    }
}

 

풀이

N의 μ•½μˆ˜λŠ” N을 λ°˜μœΌλ‘œ λ‚˜λˆˆ 것보닀 μ΄ˆκ³Όλœ κ°’은 μ•½μˆ˜κ°€ λ  μˆ˜ μ—†λ‹€.(N은 ν¬ν•¨) ex) 10-> 1,2,5,10

λŒ“κΈ€