Programming Language/C C++
[알고리즘 문제풀이] 3. 진약수의 합★
9루트
2022. 1. 3. 20:52
진약수란?
원래 약수 중에서 자기자신을 제외한 것
6의 약수는 1, 2, 3, 6인데 진약수는 1, 2, 3
이 문제는 마지막 약수 일 때 "숫자 +"형식이 아닌 "숫자 = 합" 형식으로 출력하는 데 고민을 했다.
N의 약수 중에 가장 큰 수를 구분해줘야 했다.
그래서
"숫자 +"을 출력하는 것이 아니라
1을 먼저 출력하고
"+ 숫자" 형식으로 출력하는 것이 좋다.
#include <iostream>
using namespace std;
int main(){
int n, i, sum = 0;
cin >> n;
cout << "1";
sum = sum + 1;
for( i = 2; i < n; i++){
if(n % i == 0){
cout << " + "<< i;
sum = sum + i;
}
}
cout << " = " << sum;
return 0;
}