๐Ÿ’  Cpp/[BOJ] ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ

[BOJ][C++] ๋ฐฑ์ค€ 9506๋ฒˆ: ์•ฝ์ˆ˜๋“ค์˜ ํ•ฉ (Bronze I)

์„ ๋‹ฌ 2024. 12. 26. 01:15
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

์–ด๋–ค ์ˆซ์ž n์ด ์ž์‹ ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์•ฝ์ˆ˜๋“ค์˜ ํ•ฉ๊ณผ ๊ฐ™์œผ๋ฉด,๊ทธ ์ˆ˜๋ฅผ ์™„์ „์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด 6์€ 6 = 1 + 2 + 3 ์œผ๋กœ ์™„์ „์ˆ˜์ด๋‹ค.
n์ด ์™„์ „์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ.

์ž…๋ ฅ

์ž…๋ ฅ์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ํ•œ ์ค„ ๊ฐ„๊ฒฉ์œผ๋กœ n์ด ์ฃผ์–ด์ง„๋‹ค. (2 < n < 100,000)
์ž…๋ ฅ์˜ ๋งˆ์ง€๋ง‰์—” -1์ด ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋งˆ๋‹ค ํ•œ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.
n์ด ์™„์ „์ˆ˜๋ผ๋ฉด, n์„ n์ด ์•„๋‹Œ ์•ฝ์ˆ˜๋“ค์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ์ถœ๋ ฅํ•œ๋‹ค(์˜ˆ์ œ ์ถœ๋ ฅ ์ฐธ๊ณ ).
์ด๋•Œ, ์•ฝ์ˆ˜๋“ค์€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‚˜์—ดํ•ด์•ผ ํ•œ๋‹ค.
n์ด ์™„์ „์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด n is NOT perfect. ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

// ํ’€์ด : https://whkakrkr.tistory.com

#include <iostream>
#include <vector>

using namespace std;

string solution(int n) {
    int sum = 0;
    string ans = to_string(n) + " =";
    
	for(int i=1; i<n; i++) {
	    if(n%i==0) {
	        sum += i;
	        ans += " " + to_string(i) + " +";
	    }
	}
	ans.pop_back();

	if(sum!=n) {
	    ans = to_string(n) + " is NOT perfect.";
	}
	
	return ans;
}

int main() {
    ios_base::sync_with_stdio(false);
	cout.tie(NULL);
	cin.tie(NULL);
	
	int n;
	cin >> n;
	while(n!=-1) {
	    cout << solution(n) << "\n";
	    cin >> n;
	}
	
    return 0;
}
๋ฐ˜์‘ํ˜•