진약수란?
원래 약수 중에서 자기자신을 제외한 것
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;
}
'Programming Language > C C++' 카테고리의 다른 글
[알고리즘 문제풀이] 5. 나이 계산★ (0) | 2022.01.03 |
---|---|
[알고리즘 문제풀이] 4. 나이 차이★ (0) | 2022.01.03 |
[알고리즘 문제풀이] 2. 자연수의 합 (0) | 2022.01.03 |
[알고리즘 문제풀이] 1. 1부터 N까지의 M의 배수합 (0) | 2022.01.03 |
[C언어 기초] 1. C 출력 (0) | 2022.01.03 |