Notice
Recent Posts
Recent Comments
Link
알고리즘 모음(C++)
백준 9506 - 약수들의 합(C++) 본문
문제 링크입니다. https://www.acmicpc.net/problem/9506
약수들을 구할 수 있는지를 물어보는 문제입니다.
자신을 포함하지 않은 약수이니, 1부터 N/2까지 확인해, 나눠떨어지는지를 확인하면 됩니다.
나눠떨어지는 수를 전부 더한 뒤, 이들의 합이 N과 같은지 확인해면 됩니다.
자세한 것은 코드를 참고해주세요.
#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
using namespace std;
int N;
vector<int> Div;
void solve(){
int sum = 0;
for(int i = 1; i <= N/2; i++){
if(N % i == 0){
Div.push_back(i);
sum += i;
}
}
if(sum == N){
cout << N << " " << "=" << " ";
for(int i = 0; i < Div.size(); i++){
cout << Div[i];
if(i != Div.size() - 1) cout << " " << "+" << " ";
}
cout << "\n";
}
else{
cout << N << " " << "is NOT perfect." << "\n";
}
Div.clear();
}
int main() {
cin.tie(0);
cout.tie(0);
while(1){
cin >> N;
if(N == -1) break;
solve();
}
return 0;
}
질문 및 조언은 댓글을 남겨주세요.
'백준' 카테고리의 다른 글
백준 10101 - 삼각형 외우기(C++) (0) | 2023.12.09 |
---|---|
백준 9063 - 대지(C++) (2) | 2023.12.09 |
백준 2151 - 거울 설치(C++) (0) | 2023.12.07 |
백준 20529 - 가장 가까운 세 사람의 심리적 거리(C++) (1) | 2023.12.07 |
백준 18110 - solved.ac(C++) (0) | 2023.12.04 |