https://www.acmicpc.net/problem/9506
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool isPerfect(int n){
int sum = 0;
vector<int> divisors;
for(int i=1;i*i<=n;i++){
if(n%i == 0){
sum += i;
divisors.push_back(i);
if(i != n/i && i != 1){
sum += n/i;
divisors.push_back(n/i);
}
}
}
sort(divisors.begin(), divisors.end());
if(sum == n){
cout << n << " = ";
for(int i=0;i<divisors.size()-1;i++){
cout << divisors[i] << " + ";
}
cout << divisors[divisors.size()-1] << "\n";
return true;
}
else{
cout << n << " is NOT perfect.\n";
return false;
}
}
int main(){
int n;
while(true){
cin >> n;
if(n == -1) break;
isPerfect(n);
}
return 0;
}
'Coding > 백준 온라인 저지 (Baekjoon Online Judge)' 카테고리의 다른 글
백준 온라인 저지(Baekjoon Online Judge) - 2903 : 중앙 이동 알고리즘 (0) | 2023.05.11 |
---|---|
백준 온라인 저지(Baekjoon Online Judge) - 2501 : 약수 구하기 (0) | 2023.05.11 |
백준 온라인 저지(Baekjoon Online Judge) - 1463 : 1로 만들기 (0) | 2023.05.11 |
백준 온라인 저지(Baekjoon Online Judge) - 10948 : Daily 로또 (0) | 2023.05.11 |
백준 온라인 저지(Baekjoon Online Judge) - 27959 : 초코 (0) | 2023.05.10 |